提问者:小点点

当有两台后端服务器时,如何共享DB模式?


我正在开发一些服务器。此服务器由一个前端和两个后端组成。到目前为止,我已经完成了一个后端的开发,我想开发另一个。两者都是express服务器,db使用的是MongoDB。此时,我正在使用mongoose模块进行开发,我想共享一个集合(即模式)。但是我已经在一个服务器上创建了一个模型文件。如果是这样,我在想是否需要在我现在开发的服务器上生成相同的模型文件。因为如果我以后修改模型文件,我必须同时修改这两个文件。

如果有好办法,请举个例子让我知道。

谢谢。


共1个答案

匿名用户

我有两个答案给大家,一个是直接的,另一个是将引入微服务的概念。

您可以创建一个附加的项目,它将是一个NPM库(它可以通过NPM或git子模块安装)。这个lib将公开一个工厂方法,该方法将接受mongoose选项并返回mongoose连接。

使用单个共享模块将使在更新DB之后更新每个后端变得更容易(如果您有许多后端,这有点麻烦)。

在微服务方法中,每个服务(后端)管理自己的DB,并且只管理它。这意味着每个服务都需要公开一个内部API供其他服务使用。因此,每个服务都有一个定义良好的内部API,其他服务可以使用,而不是共享lib。

我建议您研究NestJS(NodeJS微服务框架),以便更好地了解如何使用微服务

不用说,我更喜欢答案2,但它更复杂,你可能需要了解更多,然后再去尝试。但我强调推荐它,因为微服务(如果实现正确)将使您的代码更能证明未来的情况。