我在Express应用程序上的路由处理程序如下所示:
app.use('/', function(res, req, next) => {
if (!authorised) next();
f1();
f2();
});
如何避免运行f1()和f2()而不必引入类似的条件:
app.use('/', function(res, req, next) => {
if (authorised) {
f1();
f2();
} else {
next();
}
});
引入return next()
会破坏正确的路由处理流程。
答案 0 :(得分:1)
您需要做的就是
app.use('/', function(res, req, next) => {
//early return
if (!authorised) { next(); return; }
// Still valid
//if (!authorised) return next();
/* Still valid
if (!authorised) {
//do something like log unauthorized access
return next();
}*/
f1();
f2();
});
这是你在找什么?