节点JS:数据没有到达下一个.then()

时间:2015-12-31 09:44:37

标签: node.js

我无法将状态从o更改为1.服务器返回500。我不知道出了什么问题我已经做好了为什么不推动它。

function changeAdminStatus(req, res, next){
getSuperAminById(req.params.id)
    .then(function(data){
      if(data.account.status == 1)
          {
              console.log(data);
              Admin.findByIdAndUpdate(data._id,  {
                $push: {
                    'account.status' : 0
                }
            }, function(err, doc) {
                if (err) {
                    res.sendStatus(500);
                }
                 else if(doc) res.sendStatus(200);
                      else res.sendStatus(200);
            }
        );

    }

2 个答案:

答案 0 :(得分:0)

在第二行使用return会将结果带到下一行。然后

function changeAdminStatus(req, res, next){
return  getSuperAminById(req.params.id)
 .then(function(data){
   if(data.account.status == 1)
      {
          console.log(data);
          Admin.findByIdAndUpdate(data._id,  {
            $push: {
                'account.status' : 0
            }
        }, function(err, doc) {
            if (err) {
                res.sendStatus(500);
            }
             else if(doc) res.sendStatus(200);
                  else res.sendStatus(200);
        }
    );

}

答案 1 :(得分:0)

您是否正在设置MongoDB

        $push: {
                'account.status' : 0
            }

而不是

         $push: {
                'account'  :{  'status' : 0 }
            }