如何在两个包中使用mongoose?

时间:2018-03-20 10:36:59

标签: node.js mongodb mongoose package lerna

我使用Lerna处理我的仓库中的多个包裹。

基本上,我有一个包@pkg/server我的Node / Express App和另一个包@pkg/model我的mongoose Schema所在的包。

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

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

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

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

我的问题是,这是正确的方法吗?或者有没有办法(@pkg/servermongoose.loadSchemas(@pkg/model)

1 个答案:

答案 0 :(得分:0)

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

某些程序包可以注册模型,其他程序包可以进行查询,等等...