Mongoose - how to tap schema middleware into the &

2020-02-12 01:54发布

It is suggested in the Mongoose docs that I should be able to control the flow using middleware that plugs in to the "init" hook.

However, I have so far had success only with "save" and "validate".

When I do something like this, neither of these middleware ever get called:

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

Am I missing something?

2条回答
放我归山
2楼-- · 2020-02-12 02:00

I have successfully used middleware like MySchema.post('init', function() { ... }); with Mongoose which is then executed for each model instance loaded in a find query. Note that there isn't a next parameter to call with this middleware, it should just return when done.

查看更多
老娘就宠你
3楼-- · 2020-02-12 02:01

It turns out that the "init" event/hook is not fired when creating a new Model, it is only fired, when loading an existing model from the database. It seems that I should use the pre/validate hook instead.

查看更多
登录 后发表回答