bogdan_uman
@bogdan_uman
шлЫмазл неукЪ-поцЪ

Глобальный error handler для асинхронных ошибок?

Здравствуйте. Подскажите пожалуйста, можно ли сделать глобальный middleware для отлова асинхронных ошибок в Express.
Синхронные отлично ловятся

routes.get('', (req, res) => { throw new Error('some-error'); }); // Эту ловит
app.use((err, req, res, next) => res.status(422).send(err.message));


а эту уже не ловит

routes.get('', async(req, res) => { throw new Error('some-error'); }); // Эту ловит
app.use((err, req, res, next) => res.status(422).send(err.message));


Можно конечно оборачивать каждый роут в try {} catch {} , но может можно сделать по другому? Спасибо.
  • Вопрос задан
  • 44 просмотра
Решения вопроса 1
@RidgeA
Дело в том, что express не умеет работать с промисами из коробки, нужно сделать враппер для мидлвара по типу https://medium.com/@Abazhenov/using-async-await-in...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы