gpt4 book ai didi

node.js - 有条件地跳过 mongoose 钩子(Hook)函数

转载 作者:可可西里 更新时间:2023-11-01 10:03:11 34 4
gpt4 key购买 nike

我有一个预保存钩子(Hook)来加密 User 模式的 password 字段,例如:

var schema = new mongoose.Schema({
username: 'string',
password: 'string'
});

schema.pre('save', encrptPasswordHook);
schema.pre('update', encrptPasswordHook);
schema.pre('findOneAndUpdate', encrptPasswordHook);
...

通过这种方式,每次创建或更新 User 时,我都会在我的数据库中加密密码字符串。

现在我有一个包含旧 User 数据和加密密码的 JSON 文件。我想使用此 User 模型将 JSON 文件导入我的数据库。

如何避免pre-save hook再次加密密码?

最佳答案

你可以使用 User.collection.insert() 绕过所有的 Mongoose 验证(不会检查插入数据的类型)和钩子(Hook),它直接使用 MongoDB 驱动程序:

var UserSchema = new mongoose.Schema({
username: 'string',
password: 'string'
});

var User = mongoose.model('User', UserSchema);

User.collection.insert({
username: 'Some Name',
password: 'The Encrypted Password'
});

关于node.js - 有条件地跳过 mongoose 钩子(Hook)函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36153998/

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