I've setup middleware to check for the presence of a required parameter in an API call. The problem is, if the parameter is missing my middleware never gets called. I simply get a generic 404 error because the route couldn't be identified. I'm trying to figure out what I'm missing:
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' produces the expected response.
However, GET '/players/info' just gives me a generic 404 instead of the custom error message above.