我正在尝试根据请求查询参数来决定要使用的中间件。
在主模块中我有这样的东西:
app.use(function(req, res){
if (req.query.something) {
// pass req, res to middleware_a
} else {
// pass req, res to middleware_b
}
});
middleware_a
和 middleware_b
都是 express 应用程序 本身由 express()
函数创建,而不是常规的中间件函数(函数(req, res, next)
)
找不到办法
最佳答案
connect/express“中间件”没有什么神奇之处:它们只是函数——你可以像调用任何其他函数一样调用它们。
所以在你的例子中:
app.use(function(req, res, next){
if (req.query.something) {
middlewareA(req, res, next);
} else {
middlewareB(req, res, next);
}
});
也就是说,可能有更优雅的方式来构建分层 express 应用程序。查看 TJ's video
关于node.js - 根据请求参数 express 有条件地使用中间件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21271492/