#node.js #express #error-handling
#node.js #экспресс #обработка ошибок
Вопрос:
Я знаю о документации Express, касающейся обработки ошибок, а именно использования next() для обработки ошибок в асинхронных функциях или throw для обработки ошибок в функциях синхронизации. Выбрасывание их из моего обработчика маршрута работает нормально, ошибки передаются в мой пользовательский обработчик ошибок, который я вставил через app.use().
Однако, чего я никогда не находил ни в одной документации, так это того, как мне лучше всего обрабатывать ошибки в асинхронной функции (например, на моем уровне обслуживания) или классе, который вызывается обработчиком маршрута. Должен ли я передавать next() этой функции? Я действительно не хочу этого делать, так как я хочу, чтобы все функции, специфичные для Express, были отделены от моей другой логики приложения.
class someClassThatIsUsedInMyRouteHandler {
async create() {
throw new CustomError("some message", 401);
}
}
Ответ №1:
О, чувак, попробовал несколько вещей, и в итоге проблема заключалась в типе (ошибка вместо ошибки в моем ErrorHandler). Выполнение следующего действия (ошибка) в моем контроллере работает 🙂