【发布时间】:2020-08-16 23:41:45
【问题描述】:
我刚刚开始了我的第一个环回项目,并为应用程序选择了 loopback4 版本。它纯粹是一个服务器应用程序,它将与数据库(Redis 和 mongodb)进行交互,并由于微服务架构而调用外部 API 服务。
现在,我的应用程序中有 3 个数据源,即 mongodb、Redis 和基于 REST 的数据源来调用外部服务。我在前进中面临两个问题。
1.数据源的环境特定配置: 我需要根据 NODE_ENV 环境变量维护所有三个数据源的配置。对于 lb3,我找到了这个解决方案,
https://loopback.io/doc/en/lb3/Environment-specific-configuration.html#data-source-configuration
这在 lb4 中不起作用。一种解决方案是在src/datasources目录中添加名称为mongodb.staging.json和mongodb.production.json的配置文件,redis和rest数据源的名称相同,并使用if条件根据NODE_ENV变量加载此配置并将其传递给数据源的构造函数。它可以工作,但看起来不太好,因为这应该是应用程序的责任。
有人可以为我推荐上述的 lb3 等效解决方案吗?
2。通过数据源调用外部 API: 在 lb4 中,要调用外部服务,建议使用单独的基于 REST 的数据源及其服务通过控制器调用它。现在,在 REST 数据源配置中,必须定义将发生在外部服务 https://loopback.io/doc/en/lb4/REST-connector.html#defining-a-custom-method-using-a-template 上的所有 API 调用的模板。
由于我的应用程序使用相对大量的请求参数大量调用外部服务。用请求参数声明每个 API 调用并在特定于环境的数据源配置中维护它变得非常混乱。
有人可以告诉我上述问题的更强大和更清洁的替代方案吗?
提前致谢!!
【问题讨论】:
标签: node.js typescript loopbackjs loopback4