2017-05-07 6 views
0

は、私はこのようないくつかのマングースミドルウェアフックを定義した:マングースschema.postイベントマングースを使用してノードのアプリで> = 4.8.0

mongoose.model('MyModel').schema.post('save', function(document) { 
    // following is executed in 4.7.9 but not 4.8.0 
    console.log('saved'); 
}); 

これらは最大マングースのバージョンで完全にうまく機能し、 4.7.9を含んでいますが、私のアプリケーションでmongooseを4.8.0に更新すると、他の変更はありませんが、これらのフックはまったく呼び出されません。警告やエラーはありません。

http://mongoosejs.com/docs/middleware.htmlは、これらのフックを定義する方法が変更されていないことを示しています。この動作を維持するために4.8.0以上で必要なことがありますか?

答えて

1

私はあなたがモデルを作成前に、ミドルウェアを宣言する必要があることを確信している:

let MySchema = new mongoose.Schema(...); 

MySchema.post('save', ...); 

let MyModel = mongoose.model('MyModel', MySchema); 

も同様に、これを参照してください:私が誤っていることを文書化されていない動作に依存して同じようhttps://github.com/Automattic/mongoose/issues/4971#issuecomment-279238187

+0

はい、見えます感謝、変更されました。 – darrend

関連する問題