【发布时间】:2015-04-07 12:49:29
【问题描述】:
我有许多类似于以下的中间件功能:
function validate(req, res, next) {
req.validationError = new Error('invalid');
}
function checkValid(req, res, next) {
if (req.validationError) {
next(req.validationError);
} else {
next();
}
}
function respond() {
res.json({result: 'success'});
}
有没有办法将它们包装成一个函数?所以我会做这样的事情:
function respondIfValid(req, res, next) {
// Evoke the following middleware:
// validate
// checkValid
// respond
}
app.use('/', respondIfValid);
代替:
app.use('/', validate, checkValid, respond);
【问题讨论】:
-
这个中间件的目标是成为一个原子单元吗?或者换一种方式问,将所有逻辑放在一个函数中有什么问题?
-
我一般很好奇中间件能不能用上面的方式。
标签: javascript node.js express