API删除不更新DB

时间:2017-08-05 14:59:33

标签: javascript node.js mongodb api mongoose

所以我在我的API中有这个请求,它是通过按下按钮运行的获取请求来调用的:

router.delete('/itemDelete/:id', function(req, res, next){
  User.findOne({_id: req.params.id}).then(function(user){
    var userTemp = user;
    var items = user.items;
    var i = 0;
    for(i=0; i<items.length; i++){
      if(items._id == req.body.itemID){
        items.splice(i,1);
      }
    }
    userTemp.items = items;
    User.findByIdAndUpdate(req.params.id, userTemp, function(err, user){
      res.send(user);
    });
  }).catch((err) => console.error(err));
});

代码运行且没有错误,但数据库不会更改。

2 个答案:

答案 0 :(得分:1)

确保此块不是错误。没有错误检查,err是否为null。 cmiiw

User.findByIdAndUpdate(req.params.id, userTemp, function(err, user){ console.log("error:",err);res.send(user); };

答案 1 :(得分:0)

要删除,您可以这样做。但是如果只改变状态,你需要自己更新。发布你传递的参数

    User.findOneAndRemove({_id: req.params.id }, function(err){...})