Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Nodejs-承诺代码未执行_Javascript_Node.js - Fatal编程技术网

Javascript Nodejs-承诺代码未执行

Javascript Nodejs-承诺代码未执行,javascript,node.js,Javascript,Node.js,我不确定问题出在哪里。。。这可能与我的承诺有关。这是一个nodejs/express应用程序。我使用Sequelize.js与我的DB交互,它使用承诺 基本上,用户可以在下面发出post请求 现在,condition1工作正常条件3也可以正常工作。但是,如果结果是condition2console.log消息condition2成功将执行,但res.send('success2!')将执行代码将不执行。。。代码就挂在那里 router.post('/checkUserRoute', functi

我不确定问题出在哪里。。。这可能与我的承诺有关。这是一个nodejs/express应用程序。我使用Sequelize.js与我的DB交互,它使用承诺

基本上,用户可以在下面发出post请求

现在,
condition1
工作正常<代码>条件3也可以正常工作。但是,如果结果是
condition2
console.log消息
condition2成功
将执行,但
res.send('success2!')将执行代码将不执行。。。代码就挂在那里

router.post('/checkUserRoute', function(req, res, next) {

    const username = req.body.username;
    if (condition1) {
        userTable.findOne({
            where: {
                username: username
            }
        }).then(function(user) {
            if (condition2) {
                console.log('Condition 2 success!')
                res.send('success2!');
            }
            if (condition3) {
                user.update({
                    username: 'NewUserName' 
                }).then(function() {
                    console.log('Condition 3 success!');
                    res.send('success3!');
                });
            }
        }).catch(function(err){
            res.send('error');
        });
    }
});
当满足
condition2
并到达行
res.send('success2!')时以下消息显示在我的终端中:

警告:已在anonymous>的处理程序中创建承诺。。。但未从中返回,请参见
,然后显示以下链接:


该链接建议添加
return
,但没有帮助

您能否尝试在
…res.send('success2!')之前添加return语句
…user.update({
…res.send('success3!')之前)
我添加了三个
return
语句…和以前一样,
condition1
condition3
工作正常,但它仍然挂在
condition2
的同一位置。唯一的区别是,现在在终端中,消息
警告:承诺是在处理程序中创建的…
出现。这真的很奇怪,
console.log
res.send
都不知道是挂起的;它们的执行是同步的。你在做什么对你的环境不常见的事情吗?@guest271314在
Express
中定义一个带有
函数(req,res,next){…}
的路由意味着你必须调用
next()
完成后。在每次返回之前调用
next()
,或者,由于您在此处完成了请求,因此只需删除声明即可。即
function(req,res){…}
。Common
Express
error。