Ответ с ошибкой
Часть раздела Основы Express путешествия по Node.js на Coddy. Урок 17 из 23.
Маршрут может завершиться с ошибкой, если на сервере что-то пошло не так. Вызов ошибки через Error передаёт её Express. Обработчик ошибок — это промежуточное ПО с четырьмя параметрами, первым из которых является err. Express передаёт выброшенные ошибки такому промежуточному ПО.
app.use((err, req, res, next) => {
res.status(500).json({error: 'Try later'});
});Разместите обработчик после маршрутов. Клиент должен получить короткое сообщение, а сервер может записать подробности в журнал. Оставьте все четыре параметра, даже если next не используется: Express распознаёт обработчики ошибок по форме функции.
До добавления обработчика запрос GET /broken возвращает собственную HTML-страницу ошибки Express. Вызов next(err) также передаёт ошибку обработчику ошибок; вызов next() продолжает выполнение обычным образом.
Задание
ЛегкоЗапускайте только practice-errors/server.js. Файлы Recipe Box не затронуты, и вы продолжите работу с ними на следующем уроке.
Запустите приложение и отправьте запрос GET /broken, чтобы увидеть страницу ошибки по умолчанию. Добавьте обработчик ошибок после маршрутов. Запишите err.message с помощью console.error, затем отправьте статус 500 и {"error":"Try later"}. Ответ не должен раскрывать Database offline, но в консоли должно отображаться это сообщение.
Маршруты, которые вызывают ошибку, находятся в заблокированном файле practice-errors/routes.js. Оставьте его подключение; напишите обработчик в server.js.
Попробуйте сами
import routes from './routes.js';
import express from 'express';
const app = express();
app.use(routes);
// Добавьте здесь обработчик ошибок.
app.listen(3000);
Все уроки раздела Основы Express
Потренируйтесь самостоятельно: Песочница Express