/**
* A middleware to check if id exists in collection
* app.get('/resources/:id/', exist('id', collection), function(req, res){...}}
* @param {String} id the parameter name of item id in req object
* @param {Model} collection the collection model
* @return {Function} the middleware
*/
function exist(id, collection) {
return function (req, res, next) {
collection.findById(req.params[id]).exec(function (err, item) {
if (err) {
console.error(err);
return res.send(500, 'Something wrong!');
}
if (!item) {
return res.send(404, 'item ' + req.params[id] + ' not found');
}
req[req.params[id]] = item;
next();
});
};
}
Wednesday, March 23, 2016
An Express middleware to check if a resource exists
After writing a similar code snippets for tens of times, I decided to write a middleware to handle it. The scenario is quite common. You want to check if an resource exists before going to the next step of processing. In my applications, it is a query in the MongoDB.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment