微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何为多种方法注册相同的猫鼬钩子?

如何解决如何为多种方法注册相同的猫鼬钩子?

我想在 pre-hook 中使用多种方法执行相同的脚本,如下所示:

UserSchema.pre("findOne",function(next) {
    console.log("Common code");
});

&

UserSchema.pre("findOneAndUpdate",function(next) {
    console.log("Common code");
});

因此,正如您在上述 2 个脚本中所注意到的,它们都执行相同的代码但具有不同的方法findOne & findOneAndUpdate

那么,有没有什么办法可以同时用相同的代码注册两个预挂钩?

解决方法

您可以将所有方法以数组的形式作为前/后钩子方法的第一个参数传递,如下所示:

UserSchema.pre(["findOne","findOneAndUpdate"],function(next) {  // ["method1","method2","method3"...]
    console.log("Common code");
});

现在您可以为多个方法注册并执行相同的脚本。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。