javascript - 如何为多个方法注册相同的猫鼬钩子?
问题描述
我想在 pre-hook 中使用多种方法执行相同的脚本,如下所示:
UserSchema.pre("findOne", function(next) {
console.log("Common code");
});
&
UserSchema.pre("findOneAndUpdate", function(next) {
console.log("Common code");
});
因此,正如您在上面的 2 个脚本中注意到的那样,它们都在执行相同的代码,但具有不同的方法:findOne
& findOneAndUpdate
。
那么,有没有办法一次用相同的代码注册两个预挂钩?
解决方案
您可以将所有方法以数组的形式作为 pre/post 钩子方法中的第一个参数传递,如下所示:
UserSchema.pre(["findOne", "findOneAndUpdate"], function(next) { // ["method1", "method2", "method3"...]
console.log("Common code");
});
现在您可以为多个方法注册和执行相同的脚本。
推荐阅读
- reactjs - 带有 lambda 的 useState 在设置时调用 lambda
- python - 是否可以使用健身房(Pong)从键盘上与训练有素的机器人对战?
- c - sigwait() 在 macOS 和 Linux 中的行为是否不同?
- python - 如何序列化对象列表?
- git - 在我的文件系统上哪里可以找到 git 预提交钩子模板?
- mysql - MySQL 从 2 个连接表更新表
- vuejs2 - 动态创建资产路径
- c++ - 如何在 linux 平台上表达 openGL glDebugOutput / glDebugMessageCallback
- python - 如何使用 HTML 代码导入另一个 python 脚本
- visual-studio-code - 在 Visual Studio Code 的所有窗口中突出显示所有出现的选择