Express中间件函数内调用其他中间件函数
发布于 6 天前 作者 jingsam 125 次浏览 来自 问答

在Express里面我们经常这么设置中间件:

router.post(middleware1, middleware2, middleware3)

现在我想把中间件合并为一个中间件,并添加一些处理逻辑,如:

var auth = function(req, res, next) {
	if (req.body.username && req.body.password) {
		// 依次调用middleware1, middileware3
	}
	
	if(req.body.access_token) {
		// 依次调用middleware2, middileware3
	}
}

请问这个调用怎么写?

2 回复

昨天现场已经回复了

require('./middleware2')(req, res, next)

类似这样的写法即可

@i5ting 我现在是这样实现的:

middleware1(req, res, function() {
      middleware3(req, res, next)
    })

感觉是hack,比如middleware1中出现next(err)的时候程序就会崩

回到顶部