在复杂的、拥有很多相互关联对象的应用中,我们可能会在保存一个对象之前想执行某些特定的逻辑。
钩子(Hooks)正是存储这些逻辑的好地方。
例如,我们可能想在保存book这个文档之前上传一个PDF:
bookSchema.pre('save', function(next){
// 准备保存
// 上传PDF
return next();
});
又或者,在删除book文档之前,我们需要确定对于该文档没有其他待处理的请求:
bookSchema.pre('remove', function(next){
// 准备删除
return next(e);
});