Ответ 1
К сожалению, это не простой рефакторинг.
1) .createConnection
vs .connect
При использовании .createConnection
вы получаете доступ к моделям через явное соединение, которое вы создаете с помощью этого вызова.
Это означает, что вместо User = mongoose.model(...)
вам нужно User = db.model(...)
.
Примеры (один, два, три, четыре) показывают, что это не сложно, но изменение достаточно тонкое, что многие пропустили его. Документы также не очень понятны, что, вероятно, является основной причиной.
2) ваше приложение kraken и .createConnection
Если вы строите один из примеров kraken, вам нужно сделать несколько изменений.
- Измените код вокруг
.createConnection
, чтобы вы могли получить доступ к возвращаемому объекту. В текущей форме вы возвращаете объект с помощью функцииconfig
, но вы не возвращаете объект соединения, который генерирует.createConnection
. - Обновите
index.js
, если вы измените способ настройки/создания соединения вdb.config
. Возможно, вы сможете избежать этого, но я подозреваю, что вы перепишете весьdb.js
вокруг нового вызова. - Убедитесь, что код/контроллеры, работающие с моделями, имеют доступ к объекту, возвращаемому вашим
.createConnection
. Это означает как способ доступа к объекту, так и изменение любого места, где вы устанавливаете переменную, чтобы он использовал форматvar xyz = db.model('XYZ')
и т.д.
Извините, что нет простого однострочного ответа...