NodeJS防止其余功能运行

时间:2016-04-14 01:04:36

标签: node.js express routing

我遇到以下问题:

router.post('/create', function(req, res, next) {
    if(!req.user) res.redirect("/");

    Survey.find({ surveyName: req.body.surveyName }, function(error, survey) {
        if(survey) { 
            res.redirect('back');
            res.end();
        }
    });

    // save the survey code here
});

我想要做的是确保如果已经存在具有该名称的调查,客户端将返回上一页;但是,检查会运行代码(无论是否存在)并继续尝试保存调查。如何解决这个问题的任何见解将不胜感激!

1 个答案:

答案 0 :(得分:2)

你应该这样做:

Survey.find({ surveyName: req.body.surveyName }, function(error, survey) {
    if(survey) { 
        res.redirect('back');
        res.end();
        return;
    }

    // save the survey code here
});

编辑:请注意javascript的异步性