我在这样的模型上有 2 个钩子(在不同的文件中):
model.pre('save', function(next) {
if (this.isModified('password'))
this.set('password, hash(this.get('password'))
next()
})
model.pre('save', function() {
if (this.isNew)
this.set('password', generatePassword())
next()
})
我的第一个钩子来自一个模块,它必须是第一个,我不能修改它。它检查密码字段是否被修改,如果是,则对其进行哈希处理。我的第二个钩子是我创建的,我在创建用户时设置了一个随机生成的密码。
我的问题是我的第一个钩子不会散列我的密码,因为它在第二个之前通过。我试图调用this.save
我的第二个钩子,但isModified
如果我这样做是错误的。
我不得不将hash
第一个钩子的功能复制到第二个文件中以使其工作,但这远非完美。
所以我想知道是否有办法在 mongoose 中按优先顺序运行钩子?谢谢。