我想基于作为请求查询参数的标志在post save
钩子中执行一些代码。如何在回调函数中读取此变量?我可以以某种方式将它设置在架构或我稍后可以引用的对象上吗?
var User = new Schema({...});
User.post('save', function(callback){
if(someFlag){
......
}
});
答案 0 :(得分:0)
任何文档都可以通过架构方法访问其架构,因此您可以:
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
});
})