在多个应用程序中共享mongo模型

时间:2019-05-26 21:14:47

标签: javascript node.js mongodb mongoose microservices

我正在构建一个应用程序,随着它的发展,我学到了更多知识,并且随着它的发展而发展。

此刻,我已将我的应用程序分成3个单独的部分

  1. 网络-前端
  2. API-数据
  3. 工人-数据处理

这些单独的nodejs应用程序中的每一个都具有在不同服务器上执行的功能。

我启动了另一个包含共享代码的小程序包/应用程序,然后将其包含在依赖关系中:

"shared": "file:../shared",

这样我就可以随时通过任何应用访问我的模型:

let User = require('shared/models/user')

我发现自己正在运行以下命令以在开发模式ALOT中升级到最新模型

yarn upgrade shared

我仍在学习最佳实践,所有这些……这真的是最好的方法吗?我是否应该做其他事情以节省更多时间?

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

在微服务中共享相同的模型不是一个很好的架构决策。微服务应该拥有自己的模型,而共享与拥有相反。

这并不意味着一个用户不能在多个微服务中拥有用户,但不能拥有同一模型。您可以使用集成模式,即Anti-corruption layer。长话短说,规范模型包含所有字段,而远程模型仅包含所需的字段子集。