【发布时间】:2015-06-03 06:02:21
【问题描述】:
如果有以下模式和中间件挂钩,但永远不会调用 find 和 findOne 挂钩。 save 和 update 挂钩按预期工作。根据Mongoose Middleware 文档,这应该是可用的。
// define the schema for our recs model
var recSchema = mongoose.Schema({
dis: String, // rec display
mod: String // modified date (HAYSTACK FORMAT)
}, {
strict: false
});
// create the model for recs
var model = recsdb.model('recs', recSchema);
recSchema.pre('save', function(next) {
this.mod = HDateTime.now(HTimeZone.UTC).toZinc();
next();
});
recSchema.pre('update', function(next) {
this.mod = HDateTime.now(HTimeZone.UTC).toZinc();
next();
});
recSchema.pre('find', function() {
console.log("Pre Find");
});
recSchema.pre('findOne', function() {
console.log("Pre Find One");
});
recSchema.post('find', function() {
console.log("Post Find");
});
recSchema.post('findOne', function() {
console.log("Post Find One");
});
【问题讨论】:
-
如何验证它不起作用?
-
你有哪个猫鼬版本?
-
根据您的评论更新以确保我使用的是 4.0.x。我现在正在使用 4.0.4,但仍然没有。我通过执行 find 和 findOne 验证它不起作用并且控制台中没有输出。
-
您能否也提供实例化
model的代码?我目前的猜测是您不使用订阅事件的模式来创建模型。正如 robertklep 的要点 -
在上面的代码中添加了架构
标签: node.js mongoose find middleware