13

「init」フックにプラグインするミドルウェアを使用してフローを制御できるようにする必要があることが、 Mongoose ドキュメントで提案されています。

ただし、これまでのところ、「保存」と「検証」のみで成功しています。

私がこのようなことをすると、これらのミドルウェアはどちらも呼び出されません:

MySchema.post( "init", function (next) { console.log("post init") });
MySchema.pre( "init", function (next) { console.log("pre init") });

何か不足していますか?

4

2 に答える 2

23

「init」イベント/フックは、新しいモデルを作成するときに発生せず、データベースから既存のモデルをロードするときにのみ発生することがわかりました。代わりに pre/validate フックを使用する必要があるようです。

于 2012-09-04T17:34:52.113 に答える
2

MySchema.post('init', function() { ... });Mongooseのようなミドルウェアを使用して、findクエリにロードされた各モデル インスタンスに対して実行することに成功しました。nextこのミドルウェアで呼び出すパラメーターがないことに注意してください。完了すると返されるだけです。

于 2012-08-31T22:26:47.647 に答える