Главная · Каталог задач · Обработка ошибок в Express

Готовый сценарий

Обработка ошибок в Express

Обработка ошибок в Express должна доводить сбой до одной понятной границы ответа. Енотик поможет разобрать маршрут, промежуточные обработчики и логирование. Учебный API читает заказ: отсутствие записи — ожидаемый отказ, недоступная база — внутренний сбой. Клиенту нужны разные согласованные коды, а подробная причина остаётся в журнале. Укажите Express 4 или 5: обработка отклонённого Promise в маршруте зависит от поколения фреймворка и формы вызова.

Попробуйте прямо здесь Отвечает Gemma 3 12B — модель подобрал сервис

Открыть в полном чате

  • Доступ без VPN
  • Русский интерфейс
  • Оплата рублями по факту

Зачем

Зачем это нужно

01

Покажите маршрут, передачу ошибки и порядок регистрации middleware.

02

Отделите безопасный публичный контракт от внутренней причины сбоя.

03

Проверьте один ответ и одну запись ошибки на каждое выполнение запроса.

Вопросы

Частые вопросы

Как задать пример ошибок маршрута?

«Учебный GET /orders/7: запись отсутствует — нужен код not_found; база недоступна — internal_error без SQL и стека. В журнале нужен request_id». Попросите два теста и пример ответа. Дополните успешно найденным заказом, чтобы обработчик ошибок не перехватил обычный результат. Такой набор проверяет контракт целиком, а не только наличие функции с четырьмя аргументами в конфигурации приложения.

Почему асинхронная ошибка теряется?

Важны версия Express, возвращаемый Promise и наличие ожидаемого вызова. Ошибка в отделённом таймере или забытая асинхронная операция может не относиться к обещанию, которое видит маршрут. Попросите проследить цепочку выполнения. Не добавляйте одновременно несколько обёрток и ручных передач без понимания: так легко отправить одну ошибку дальше дважды и получить повторную обработку одного сбоя.

Что делать, если ответ уже начался?

Нельзя безопасно начать новый JSON-ответ после отправки заголовков или части тела. Попросите отдельную ветку для этого состояния и правила передачи ошибки дальше согласно выбранной версии. В тесте смоделируйте сбой после начала потока. Обычный тест отказа базы до ответа не проверяет этот случай; поведение потокового маршрута нужно согласовать отдельно от стандартного API-обработчика.

Как избежать повторных логов и утечки деталей?

Выберите слой, где записывается окончательное событие с идентификатором запроса и исходной причиной. Нижние уровни могут добавлять контекст без повторной печати одного стека. Публичный ответ проверяйте отдельно на отсутствие SQL, путей и токенов. Енотик помогает собрать цепочку по вашему коду, но не наблюдает работающий сервер; подтвердите результат интеграционными запросами и содержимым фактически созданных логов.

Рядом

Дальше — весь каталог задач: поиск по названию, темы и фильтры.

Нужно больше

Весь Енотик — в одном окне

Полный чат: история, вложения, базы знаний, картинки и видео. Один баланс на все модели, оплата рублями по факту.