Я ищу способ выйти из цепи промежуточного программного обеспечения без вызова next()
.Выход из текущей цепи промежуточного программного обеспечения без ошибки бросания
Ниже приведен пример. Это работает, но я должен проверять на req.filter
каждый раз, чтобы убедиться, что он установлен в false. Имеет ли какой-либо способ выйти из текущей сети промежуточного программного обеспечения (переход на следующий маршрут), не выдавая ошибку (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")
})
Мне понравился бы какой-либо каркас или библиотека, которая решает эту проблему любым стандартным способом.