Контроллери відсутнього роуту і непередбачуваної помилки
Зазвичай в самому низу нашого сервера перед ініціалізацією сервера вставляють функцію обробки, якщо не знайдено жодного збігу за маршрутом. Іноді ці функції виносять в окремі файли. Цей код відпрацюється, якщо запит надходить формату, який не передбачений. Зірочка означає всі інші маршрути.
/**
* Not found request handler.
*/
app.all('*', (req, res) => {
res.status(404).json({
msg: 'Oops! Resource not found..',
});
});

Error handler
Якщо на сервері трапляється непередбачувана помилка (глюк), не з вини сервісу то треба вміти опрацювати цю помилку. Для цього внизу також пишуть middleware з 4 параметрами. Це є вказівкою, що це middleware опрацювання помилки.
/**
* Global error handler. Four arguments required!!
*/
app.use((err, req, res, next) => {
res.status(500).json({
msg: err.message,
});
});
Щоб перевірити відпрацювання контроллера помилки, створимо штучну помилку в запиті пінг, який ми розглядали раніше і зробимо GET-запит з маршрутом ping.
app.get("/ping", (req, res) => {
throw new Error("Fake error");
res.status(200).json({
msg: "pong!",
});
});
Цю примусову помилку має відпрацювати вищезазначений контролер помилки.

Last updated