所以我在我的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));
});
代码运行且没有错误,但数据库不会更改。
答案 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){...})