保存数据时不会触发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 并行和串行示例。