node.js - 如何在两个包中使用 Mongoose ?

标签 node.js mongodb mongoose package lerna

我正在使用 Lerna 处理我的存储库中的多个包。

基本上,我有一个包 @pkg/server 我的 Node/Express 应用程序所在的位置和另一个包 @pkg/model 我的 Mongoose 模式所在的位置。

我的 REST API 使用了一些模型,import ModelA from '@pkg/model'

问题是这两个包都有 mongoose 作为依赖项(@pkg/server 使用 mongoose 建立到 mongoDB 服务器的连接,并且 @pkg/model 使用 mongoose 来定义模式和模型。

在我的服务器中,每当我尝试调用 ModelA.find(...) 时,它就会永远挂起。从 mongoose 文档看来,我必须将模型注册到 mongoose 连接而不是 mongoose 对象本身。

我的第一个猜测是将服务器创建的连接对象传递给@pkg/model,然后将模型注册到这个连接对象。

我的问题是,这样做是否正确?或者有没有办法做类似(在 @pkg/server 中)mongoose.loadSchemas(@pkg/model) 的事情?

最佳答案

我最终做的是将连接传递给需要 mongoose 的包,从而共享包之间的连接。

一些包可以注册模型,另一个可以进行查询等......

关于node.js - 如何在两个包中使用 Mongoose ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49381960/

相关文章:

javascript - V8 javascript : chrome vs node. js - 'this' 上下文中的差异

node.js - docker构建Dockerfile时如何缓存RUN npm install指令

node.js 主进程被 ABRT 信号杀死,但没有被 process.on ("SIGABRT"捕获,...)

node.js - 如何使用 Kuzzle 将额外数据附加到用户(用于密码重置)

mongodb - Mongo - 获取姓氏的出现

linux - MongoDB 使用了太多内存

node.js - 如何设置有效的mongo副本集

node.js - 如何在 Mongoose 模式中具有自动计算的属性

Node.js - 如何使用 mongoose db 创建一个唯一的 id

javascript - Mongoose ODM : Can't save encoded password because of async