从弃用的响应调用更新不起作用

时间:2016-01-25 17:40:58

标签: javascript node.js express mongoose

我正在更新已弃用的响应调用,但面临一个不寻常的问题,即响应未结束。通常我会使用:

 res.send(200, {message: 'Location Updated'});

但现在已弃用。我切换到新代码

res.status(200).send(('Location Updated').toString());

但现在不会返回状态或结束查询。

我正在使用的完整代码

User.findByIdAndUpdate(id, update, {new: true})
  .select('-hash')
  .exec(function(err, user) {
    if (err) return res.sendStatus(422);
    if (!user) return res.sendStatus(401);

    //Update User on Map if active
    if(user.workday == true) { 
      socket.send('location_update', user);
    }

    res.send(200, {message: 'Location Updated'}); // Does end query but is deprecated !!!
    //res.status(200).send(('Location Updated').toString()); //Doesnt end query?!?!?!?
  });

1 个答案:

答案 0 :(得分:0)

虽然res.send方法结束响应,但它不会退出该函数。您必须返回响应才能退出该函数并停止查询:

return res.status(200).send('Location Updated');