猫鼬查找和 findOne 中间件不工作
Mongoose find and findOne middleware not working
If 具有以下架构和中间件挂钩,但从未调用 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");
});
问题最终是物品的顺序。显然,您必须在设置查找挂钩后定义模型。不过,保存和更新挂钩不需要这样做。
// define the schema for our recs model
var recSchema = mongoose.Schema({
dis: String, // rec display
mod: String // modified date (HAYSTACK FORMAT)
}, {
strict: false
});
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(next) {
console.log("Pre Find");
next();
});
recSchema.pre('findOne', function(next) {
console.log("Pre Find One");
next();
});
recSchema.post('find', function(doc) {
console.log("Post Find");
});
recSchema.post('findOne', function(doc) {
console.log("Post Find One");
});
// create the model for recs
var model = recsdb.model('recs', recSchema);
If 具有以下架构和中间件挂钩,但从未调用 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");
});
问题最终是物品的顺序。显然,您必须在设置查找挂钩后定义模型。不过,保存和更新挂钩不需要这样做。
// define the schema for our recs model
var recSchema = mongoose.Schema({
dis: String, // rec display
mod: String // modified date (HAYSTACK FORMAT)
}, {
strict: false
});
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(next) {
console.log("Pre Find");
next();
});
recSchema.pre('findOne', function(next) {
console.log("Pre Find One");
next();
});
recSchema.post('find', function(doc) {
console.log("Post Find");
});
recSchema.post('findOne', function(doc) {
console.log("Post Find One");
});
// create the model for recs
var model = recsdb.model('recs', recSchema);