pre('save') 或 pre('validate') 不会触发 |獴



保存数据时不会触发pre('save')pre('validate')。虽然,它是在不触发pre函数的情况下保存数据。不知道我做错了什么。

var userSchema = new Schema({...});
var User = module.exports = mongoose.model('User', userSchema);
userSchema.pre('save', function(next){ // tried with pre('validate')
console.log('triggered...');
next();
});
// adding a user
module.exports.addUser = function(user, callback){
var newUser = new User(user);
newUser.save(callback);
//or
User.create(user, callback);
}

钩子只有在创建模型之前定义它们时才有效:

var userSchema = new Schema({...});
userSchema.pre('save', function(next){ // tried with pre('validate')
console.log('triggered...');
next();
});
var User = module.exports = mongoose.model('User', userSchema);

如果你想用异步来做,你需要用true选项来定义它。

userSchema.pre('save', true, function(next){ // tried with pre('validate')
console.log('triggered...');
next();
});

您可以查看 HERE 并行和串行示例。

最新更新