【问题标题】:Stop execution Express.js停止执行 Express.js
【发布时间】:2018-07-18 17:22:28
【问题描述】:

当我调用函数时,如果确定的参数为真,我想停止执行。那可能吗? 我发现这样做的唯一方法是在检查函数中返回一个布尔值,并依赖它在 router.get 中是否返回。

router.get('/', function(req, res){
   check(req, res, true);
   console.log(1);
   res.render('page1', {});
});

function check (req,res,param = false){
   if (param){
    res.render('page2');
    // Stop it here
   }
   else {
     return("hi");
   }
}

【问题讨论】:

    标签: node.js express


    【解决方案1】:

    类似这样的东西(我假设函数 check_param 返回 true 如果你的参数 param 设置)。

    router.get('/',[function(req,res,next) {
        if (check_param()) {
            res.render('page2');
        } 
        else {
            next();
        }
    },function(req,res) {
        res.render('page1',{});
    }])
    

    【讨论】:

      【解决方案2】:

      您可以创建一个中间件并在其中添加参数检查逻辑,以便您可以将它用于多个路由。

      router.get('/', check, function(req, res){
         res.render('page1', {});
      });
      
      function check (req, res, next){
         if (req.param){
          res.render('page2');
         }
         else {
              next()
         }
      }
      

      【讨论】:

        猜你喜欢
        • 2014-07-28
        • 1970-01-01
        • 2015-07-14
        • 2017-11-29
        • 2019-06-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多