node.js - 在运行时为 Mongoose 添加全局插件
问题描述
我目前正在尝试在运行时附加一个全局猫鼬,但没有运气。我的插件需要在我的应用程序启动时生成一些依赖项和选项,因此我需要按顺序添加它。Mongoose 似乎忽略了封装在闭包中的所有内容。
const mongoose = require('mongoose');
const config = {};
const {DB_CONNECT} = process.env;
const myPlugin = schema => {
console.log('done'); // this line is not logged at all
schema.methods.mymethod = () => {};
}
const connectAndAddPlugins = async () => {
await mongoose.connect(
DB_CONNECT,
{...config}
);
mongoose.plugin(myPlugin)
};
connectAndAddPlugins();
任何帮助将不胜感激。
解决方案
显然,由于模型被编译并加载了 Mongoose 全局插件不再附加,因此模型应该在之后注册:
const mongoose = require('mongoose');
const config = {};
const {DB_CONNECT} = process.env;
const myPlugin = schema => {
console.log('done'); // this line is not logged at all
schema.methods.mymethod = () => {};
}
const connectAndAddPlugins = async () => {
await mongoose.connect(
DB_CONNECT,
{...config}
);
mongoose.plugin(myPlugin)
};
const loadModels = () => {
const model = mongoose.model('Cat', { name: String });
}
connectAndAddPlugins();
loadModels();
推荐阅读
- android - 如何修复 EBUSY:Ionic 3 中的资源繁忙或锁定?
- javascript - 如何在 javascript 中使用 fetch api 从 C# Web 方法获取响应?
- javascript - js - querySelector 在伪类 ::before 中选择和编辑样式
- html - 在 org.apache.pdfbox.pdmodel.graphics.color.PDPattern.toRGB 获取 java.lang.UnsupportedOperationException
- python - 列表字典的键到行枚举、制表符分隔的 csv 文件
- jmeter - 如何计算 JMeter Webdriver 采样器中两个不同操作的时间
- ruby-on-rails - 为什么 gem 在用户登录后设计重定向到注册路径?
- javascript - 在 AngularJS 表格组件中计算值
- javascript - 浏览器zendframework找不到javascript脚本源
- javascript - 在javascript中更改按钮的背景颜色不起作用