Я установил промежуточное программное обеспечение, чтобы проверить наличие требуемого параметра в вызове API. Проблема в том, что если этот параметр отсутствует, мое промежуточное ПО никогда не будет вызвано. Я просто получаю общую ошибку 404
, потому что маршрут не может быть идентифицирован. Я пытаюсь выяснить, что я пропускаю:Как проверить наличие параметра в вызове API
routes.js:
router.get('/players/:id/info',
middleware.params.ensureExist,
info.index
);
/middleware/params.js:
var ensureExist = function(req, res, next) {
var id = req.params && req.params.id;
if (id) {
return next();
} else {
logger.warn('req.params.id required.', { error: 'Missing req.params.id' });
return res.status(400).send({ error: 'Missing req.params.id' });
}
};
GET '/players/56/info'
производит ожидаемый ответ. Однако GET '/players/info'
просто дает мне общий 404
вместо пользовательского сообщения об ошибке выше.
Извините, это была только опечатка с моей стороны. Исправлено. – MattDionis
К сожалению, это должен был быть комментарий, а не ответ! Я обвиняю свой мобильный. –
Изменен на мой фактический ответ, извините за это. –