NodeJS 为什么Mongoose会在属性更新时立即更新数据库,而不是在保存()上

li9yvcax  于 2023-03-22  发布在  Node.js
关注(0)|答案(1)|浏览(138)

我遇到了一个奇怪的问题,当我在一个文档上运行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更新数据库而没有任何保存?

wsewodh2

wsewodh21#

仔细查看保存()是否在您调用的函数之后

相关问题