gpt4 book ai didi

node.js - 更新 mongoose 模型中的一个字段 (node.js)

转载 作者:行者123 更新时间:2023-12-02 01:25:47 26 4
gpt4 key购买 nike

我有一个用户架构,我想在其中更新一些信息,如下所示。

User.findOne({_id: idd}, function(err, usr){
usr.info = "some new info";
usr.save(function(err) {
});
});

但是该模型有一个保存钩子(Hook)来哈希密码

UserSchema.pre('save', function(next) {
if (this.password && this.password.length > 6) {
this.salt = new Buffer(crypto.randomBytes(16).toString('base64'), 'base64');
this.password = this.hashPassword(this.password);
}

next();
});

现在,当我尝试保存时,它会使用已准备好的密码并再次对其进行哈希处理,知道如何避免这种情况吗?

最佳答案

使用Model.Update并将新密码的创建移至独立函数。

var salt = new Buffer(crypto.randomBytes(16).toString('base64'), 'base64');;
var newPassword = this.hashPassword("someNew password");
User.update({_id: idd}, {
info: "some new info",
password: newPassword
}, function(err, affected, resp) {
console.log(resp);
})

关于node.js - 更新 mongoose 模型中的一个字段 (node.js),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27157163/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com