【发布时间】:2015-07-09 10:39:03
【问题描述】:
我正在寻找一种无需调用 next() 即可退出中间件链的方法。
下面是一个例子。这可行,但我必须每次检查req.filter 以确保它设置为false。 express 是否有任何方法可以退出当前的中间件链(移动到下一个路由)而不抛出错误(next(new Error("will exit and move to error handler"))?
我真正想要的是一个 nextRoute() 处理程序,它将退出此路由的中间件堆栈并移至下一个。
function queryExists(query){
return function(req, res, next){
if(!dotty.exists(req, "query."+query)) req.filter = true
return next()
}
}
app.get("/", queryExists("foo"), queryExists("bar"), function(req, res, next){
if(req.filter) return next()
return res.send(req.query.foo + " | " + req.query.bar)
})
app.get("/", function(req, res, next){
return res.send("hi")
})
我想要一些能够以任何标准方式解决此问题的框架或库。
【问题讨论】:
标签: javascript node.js express middleware