node.js - Mongoose find and findOne middleware not working -


if have following schema , middleware hooks, find , findone hooks never being called. save , update hooks work expected. according mongoose middleware documentation, should available.

// define schema our recs model var recschema = mongoose.schema({   dis: string,  // rec display   mod: string   // modified date (haystack format) }, {   strict: false });  // create model 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"); }); 

the issue ended being order of items. apparently must define model after setting find hooks. not required save , update hooks though.

// define schema 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 model recs var model = recsdb.model('recs', recschema); 

Comments