request-validator
Version:
Schema-based request validation middleware for express and connect.
33 lines (27 loc) • 842 B
JavaScript
;
module.exports = function chain() {
var args = Array.apply(null, arguments);
return function middleware(req, res, next) {
// make a copy of the functions, so that this middleware
// can be called multiple times without side effects
var steps = args.slice(0);
(function dequeue() {
var step = steps.shift(),
callback = steps.length ? function (err) {
if (err) {
return next(err);
}
dequeue();
} : next;
if (!(step instanceof Function)) {
return next();
}
try {
step(req, res, callback);
}
catch (e) {
next(e);
}
})();
};
};