express-restify-mt-mongoose
Version:
Easily create a flexible REST interface for mongoose models
19 lines (16 loc) • 2.22 kB
JavaScript
var http = require('http');
module.exports = function (options) {
return function (req, res, next) {
return function (err) {
if (err.message === http.STATUS_CODES[404] || req.params.id && err.path === options.idProperty && err.name === 'CastError') {
req.erm.statusCode = 404;
} else {
req.erm.statusCode = req.erm.statusCode && req.erm.statusCode >= 400 ? req.erm.statusCode : 400;
}
options.onError(err, req, res, next);
};
};
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9lcnJvckhhbmRsZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxJQUFNLE9BQU8sUUFBUSxNQUFSLENBQWI7O0FBRUEsT0FBTyxPQUFQLEdBQWlCLFVBQVUsT0FBVixFQUFtQjtBQUNsQyxTQUFPLFVBQVUsR0FBVixFQUFlLEdBQWYsRUFBb0IsSUFBcEIsRUFBMEI7QUFDL0IsV0FBTyxVQUFVLEdBQVYsRUFBZTtBQUNwQixVQUFJLElBQUksT0FBSixLQUFnQixLQUFLLFlBQUwsQ0FBa0IsR0FBbEIsQ0FBaEIsSUFBMkMsSUFBSSxNQUFKLENBQVcsRUFBWCxJQUFpQixJQUFJLElBQUosS0FBYSxRQUFRLFVBQXRDLElBQW9ELElBQUksSUFBSixLQUFhLFdBQWhILEVBQThIO0FBQzVILFlBQUksR0FBSixDQUFRLFVBQVIsR0FBcUIsR0FBckI7QUFDRCxPQUZELE1BRU87QUFDTCxZQUFJLEdBQUosQ0FBUSxVQUFSLEdBQXFCLElBQUksR0FBSixDQUFRLFVBQVIsSUFBc0IsSUFBSSxHQUFKLENBQVEsVUFBUixJQUFzQixHQUE1QyxHQUFrRCxJQUFJLEdBQUosQ0FBUSxVQUExRCxHQUF1RSxHQUE1RjtBQUNEOztBQUVELGNBQVEsT0FBUixDQUFnQixHQUFoQixFQUFxQixHQUFyQixFQUEwQixHQUExQixFQUErQixJQUEvQjtBQUNELEtBUkQ7QUFTRCxHQVZEO0FBV0QsQ0FaRCIsImZpbGUiOiJlcnJvckhhbmRsZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBodHRwID0gcmVxdWlyZSgnaHR0cCcpXHJcblxyXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XHJcbiAgcmV0dXJuIGZ1bmN0aW9uIChyZXEsIHJlcywgbmV4dCkge1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uIChlcnIpIHtcclxuICAgICAgaWYgKGVyci5tZXNzYWdlID09PSBodHRwLlNUQVRVU19DT0RFU1s0MDRdIHx8IChyZXEucGFyYW1zLmlkICYmIGVyci5wYXRoID09PSBvcHRpb25zLmlkUHJvcGVydHkgJiYgZXJyLm5hbWUgPT09ICdDYXN0RXJyb3InKSkge1xyXG4gICAgICAgIHJlcS5lcm0uc3RhdHVzQ29kZSA9IDQwNFxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJlcS5lcm0uc3RhdHVzQ29kZSA9IHJlcS5lcm0uc3RhdHVzQ29kZSAmJiByZXEuZXJtLnN0YXR1c0NvZGUgPj0gNDAwID8gcmVxLmVybS5zdGF0dXNDb2RlIDogNDAwXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIG9wdGlvbnMub25FcnJvcihlcnIsIHJlcSwgcmVzLCBuZXh0KVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
//# sourceMappingURL=errorHandler.js.map
;