mongoose post方法总结and疑点
官方文档代码:
1 var schema = new Schema(..); 2 schema.post('save', function (doc) { 3 console.log('this fired after a document was saved'); 4 }); 5 6 var Model = mongoose.model('Model', schema); 7 8 var m = new Model(..); 9 m.save(function (err) { 10 console.log('this fires after the `post` hook'); 11 });
大概意思是m在保存时会触发post监听的事件会被触发,
不明白post和pre有什么区别,
个人猜测,
1、触发的时间不同
pre发生在监听事件的前面;
post发生在在pre后面,但是好像也发生在监听事件的前面,但是比pre靠后,
1 UserSchema.post('save',function(doc){ 2 console.log("post"); 3 this.name="44444"; 4 }); 5 UserSchema.pre('save',function(next){ 6 console.log("pre"); 7 this.name=" "+"222"; 8 console.log(this.name); 9 next(); 10 });
输出结果为
1 /Users/Amanda/.nvm/versions/node/v4.3.1/bin/node bin/www 2 pre 3 222 4 post 5 save ok 6 OOO44444OOO
坚持下去就能成功