0

So I have this request in my API which is called by a fetch request run on a button press:

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));
});

The code runs and there is no errors but the database does not change.

Ed Lynch
  • 615
  • 4
  • 10
  • 28

2 Answers2

1

Make sure this block is not error. There is no error checking, whether err is null or not. cmiiw

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

To delete you can do so. But if to change status only you need to do update yourself.. Post the parameters you are passing

    User.findOneAndRemove({_id: req.params.id }, function(err){...})
jcardoso
  • 61
  • 7