停止执行Express.js

时间:2018-07-18 08:24:47

标签: node.js express

如果我在调用函数时确定的参数为true,我想停止执行。那可能吗? 我发现这样做的唯一方法是在check函数中返回一个布尔值,并依赖于它在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");
   }
}

2 个答案:

答案 0 :(得分:0)

类似这样的事情(如果您设置了参数true,我假设函数check_param返回param)。

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

答案 1 :(得分:0)

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

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

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