如何将快速路由处理传递给下一个中间件并打破当前的代码块?

时间:2016-02-27 16:52:28

标签: javascript express

我在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()会破坏正确的路由处理流程。

1 个答案:

答案 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();
});

这是你在找什么?