Mongoose Post Hook 用于 create() 而不是 update()

R G*_*eet 0 javascript mongoose mongodb node.js

也许我误解了,但我能找到的在猫鼬模型上使用后挂钩的所有内容都create()提出了该update()方法。和create()update()一样的吗?

我想要做的是在User创建文档时发送欢迎电子邮件,而不必在创建用户的每个路由/控制器上手动调用方法。

我对前挂钩和后挂钩有一些了解,并且我有一个预删除挂钩:

userSchema.pre('remove', async function() {
    for (let response of this.responses) {
        Response.findByIdAndRemove(response);
    };
});
Run Code Online (Sandbox Code Playgroud)

但我在 mongoose 文档中找不到任何关于create().

如果create()update()相同,那么当用户信息发生更改时,什么会阻止发送此欢迎电子邮件?我只想在最开始的时候发送一次。

让我知道我是否清澈如泥

R G*_*eet 7

最后,我通过 github 功能请求以迂回的方式在 Mongoose 文档中找到了答案::http schema.queue: //mongoosejs.com/docs/api.html#schema_Schema-queue

因此,我定义了method在实例化文档时要执行的(s),然后只需使用schema.queue如下命令:

schema.queue('methodName',[args]);

目前,我将args数组留空,因为它们只对自身进行操作,因此不需要输入其他信息。

文档没有具体说明,但我认为由于声明方法看起来与声明任何函数相同,因此queue可以在声明它调用的方法之前或之后调用该方法,但我谨慎行事并将其放在之后。

伙计,这太令人兴奋了。