Lan*_*nbo 11 javascript mongoose node.js
在我的猫鼬模型中,我有一些stats依赖于时间.我的想法是在模型加载后立即添加一个中间件来更改这些统计信息.
不幸的是,关于post-Hooks 的文档有点缺乏清晰度.好像我可以使用这样的钩子:
schema.post('init', function(doc) {
doc.foo = 'bar';
return doc;
});
Run Code Online (Sandbox Code Playgroud)
他们唯一的例子涉及 - console.log输出.它不以任何方式解释是否doc必须返回或者后挂钩的变化根本不可能(因为它不是异步的,因此对于复杂的想法可能没什么用处).
如果preon 'init'不是在加载时自动更新模型的正确方法,那么它是什么?
hun*_*tis 17
这是我们如何在加载时更新模型,异步工作:
schema.pre('init', function(next, data) {
data.property = data.property || 'someDefault';
next();
});
Run Code Online (Sandbox Code Playgroud)
pre-init很特别,其他钩子的签名略有不同,例如pre-save:
schema.pre('save', function(next) {
this.accessed_ts = Date.now();
next();
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4696 次 |
| 最近记录: |