任何文件,通過模式方法可以訪問它的模式所以,你可以:
router.js
router
.route('/')
.get(function(req, res) {
var user = new User();
user.schema.post('save', function() {
var flag = req.query.flag;
// ...
});
user.save();
});
或者將其定義爲一個文件的方法因此每個文檔都可以訪問此方法:
個
model.js
var User = new Schema({...});
User.methods.mySavePost = function(req, res) {
this.schema.post('save', function() {
var flag = req.query.flag;
// ...
});
}
,然後在你的路由器:
router
.route('/')
.get(function(req, res) {
var user = new User();
// register your post save hook
user.mySavePost(req, res);
user.save(function(err) {
// this will call after your mySavePost method hook
});
})
我希望這是一個正確的答案,我們不能稱之爲'mySavePost'爲每個請求。對於每個'post'調用,一個新的鉤子被添加到模式中,並且所有鉤子都被調用,並具有所有歷史請求對象 – sidgate