我遇到了一个奇怪的问题,当我在一个文档上运行save()
时,我得到了一个ParallelSaveError,尽管这是我唯一一次将数据保存到数据库。我做了一些深入的研究,发现Mongoose在属性更改时会自动更新数据库:
更新数据的路径:
update: function(req, res){
const updatedUser = userLogic.updateUser(res.locals.user, req.body);
return;
},
userLogic.updateUser()函数:
updateUser: function(user, data){
if(!data) throw new SyntaxError("arguments");
if(!user) throw new TypeError("user");
email = data.email.toLowerCase();
if(!isValidEmail(email)) throw new SyntaxError("invalid email");
user.name = data.name;
user.email = email;
user.country = data.country;
user.address = data.address;
return;
}
当我在这一点上改变数据库时,它已经被更新了。在路由函数中,我在更新的用户上调用.save()
,但它给出了那个错误。我以前从未遇到过这种情况。为什么Mongoose更新数据库而没有任何保存?
1条答案
按热度按时间wsewodh21#
仔细查看保存()是否在您调用的函数之后