Mongoose:如何添加多个插件

iyf*_*iyf 3 mongoose node.js

在 Mongoose 中,我从未真正见过在架构上设置多个 Mongoose 插件的示例。我所看到的只是

schema.plugin(mongooseSearchPlugin);
Run Code Online (Sandbox Code Playgroud)

如何向其中添加另一个插件?例如 mongoosePaginatePlugin?

ste*_*son 5

不幸的是 mongoose 不支持同时初始化多个插件。schema.plugin(...)所以唯一的选择就是多次调用。

您可以多次调用该函数来初始化所有插件,如下所示:

schema.plugin(mongooseSearchPlugin);
schema.plugin(mongoosePaginatePlugin);
Run Code Online (Sandbox Code Playgroud)

或者,如果您将函数存储在可迭代对象(类似于数组)中,您可以迭代每个项目并以这种方式初始化它。像这样的东西:

const myPlugins = [ mongooseSearchPlugin, mongoosePaginatePlugin ];

myPlugins.forEach(plugin => schema.plugin(plugin));

// Or you can you block style
myPlugins.forEach((plugin) => {
    schema.plugin(plugin);
});
Run Code Online (Sandbox Code Playgroud)

根据您使用的插件数量,这可能会使您的代码更短。归根结底,这是一个造型选择。

希望这个解释有帮助。