Как использовать мангуста в двух упаковках?

Я использую Lerna для обработки нескольких пакетов в своем репозитории.

По сути, у меня есть пакет @pkg/server, в котором находится мое приложение Node/Express, и другой пакет @pkg/model, в котором находятся мои схемы мангуста.

Мой REST API использует некоторые модели с расширением import ModelA from '@pkg/model'.

Проблема в том, что оба этих пакета имеют mongoose в качестве зависимости (@pkg/server использует mongoose для установления соединения с сервером mongoDB, а @pkg/model использует mongoose для определения схем и моделей).

На моем сервере всякий раз, когда я пытаюсь вызвать ModelA.find(...), он просто зависает навсегда. Из документов мангуста похоже, что мне нужно зарегистрировать модель для соединения мангуста, а не для самого объекта мангуста.

Мое первое предположение состоит в том, чтобы передать объект подключения, созданный сервером, в @pkg/model, а затем зарегистрировать модели в этом объекте подключения.

Мой вопрос в том, это правильный способ сделать это? Или есть способ сделать что-то вроде (в @pkg/server) mongoose.loadSchemas(@pkg/model) ?


person HRK44    schedule 20.03.2018    source источник


Ответы (1)


Что я в конечном итоге сделал, так это то, что я передаю соединение с пакетом, требующим mongoose, таким образом разделяя соединение между пакетами.

Один пакет может регистрировать модели, другой может делать запросы и т.д.

person HRK44    schedule 07.08.2018