当我保存数据时,pre('save')或pre('validate')不会触发。虽然,它是保存数据,而不触发预函数。不知道我做错了什么。
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);
}发布于 2017-07-16 18:43:39
只有在创建模型之前定义钩子时,钩子才能工作:
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);发布于 2017-07-16 18:14:42
如果你想用异步来完成它,你需要用true选项来定义它。
userSchema.pre('save', true, function(next){ // tried with pre('validate')
console.log('triggered...');
next();
});您可以查看这里并行和串行示例。
https://stackoverflow.com/questions/45131857
复制相似问题