Всегда возвращать данные JSON из обработчика ошибок ExpressJS по умолчанию - PullRequest
0 голосов
/ 10 октября 2018

Я создаю сервер API, используя ExpressJS.Я хочу убедиться, что сервер всегда отвечает данными JSON, а не данными HTML.Для всех пользовательских маршрутов, которые я определяю, я могу заставить сервер отвечать данными JSON.

Но в случае ошибок типа «Страница не найдена (404)» или «Внутренняя ошибка сервера (500)» серверотвечает с содержанием HTML.Существуют ли какие-либо встроенные параметры конфигурации, позволяющие делать эти ответы в формате JSON?

Я могу определить для этого собственные обработчики ошибок, но я хочу использовать функции встроенного обработчика ошибок, такие как скрытие трассировки стека на основе NODE_ENV.

1 Ответ

0 голосов
/ 10 октября 2018

Согласно экспресс-документации, вы можете обрабатывать каждые 404 и 500 ошибок сервера, например, для отправки json (или любого другого понравившегося вам ответа)

Отправка 404 в виде ответа json,

app.get('*', function(req, res){
    res.status(404).json({}); // <== YOUR JSON DATA HERE
});

Для 500 Внутренняя ошибка сервера,

app.use(function (err, req, res, next) {
    console.error(err.stack)
    res.status(500).json({}) // <== YOUR JSON DATA HERE
})

Надеюсь, это поможет!

Пожалуйста, следуйте этим ссылкам для получения дополнительной информации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...