Добавить глобальный плагин для Mongoose во время выполнения - PullRequest
0 голосов
/ 22 сентября 2018

В настоящее время я пытаюсь подключить глобальный 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();

Любая помощь будет высоко оценена.

1 Ответ

0 голосов
/ 23 сентября 2018

Очевидно, что поскольку модель компилируется и загружается с глобальными плагинами 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...