如何将多个中间件function包装成一个?

我有一些类似于以下的中间件函数:

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); 

尝试下面的代码

 app.use('/', [validate, checkValid,respond]); 

要么

 var middleware = [validate, checkValid,respond]; app.use('/', middleware ); 

需要将该系列中的所有function作为您的执行要求。

谢谢