我正在使用 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/