首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >loopback4应用中数据源的环境配置

loopback4应用中数据源的环境配置
EN

Stack Overflow用户
提问于 2020-05-02 13:29:32
回答 1查看 1K关注 0票数 0

我刚刚开始了我的第一个回送项目,并为应用程序选择了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中不起作用。一种解决方案是将名为mongodb.staging.jsonmongodb.production.json的配置文件添加到src/datasources目录中的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调用及其请求参数并在数据源配置中维护这一点变得非常麻烦,这将是特定于环境的。

有人能告诉我一个更健壮、更清洁的解决上述问题的方法吗?

提前谢谢!!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-03 00:38:46

在数据源信任中使用环境变量

数据源配置只是一个导入到*.datasource.ts中的JSON文件。因此,您可以用类型记录文件替换该JSON文件,并相应地导入它。LoopBack 4不提供任何自定义变量替换机制。相反,建议使用process.env

最近的CLI版本取代了JSON配置,转而使用单个类型记录文件:

代码语言:javascript
复制
import {inject} from '@loopback/core';
import {juggler} from '@loopback/repository';

const config = {
  name: 'db',
  connector: 'memory',
};

export class DbDataSource extends juggler.DataSource {
  static dataSourceName = 'db';
  static readonly defaultConfig = config;

  constructor(
    @inject('datasources.config.db', {optional: true})
    dsConfig: object = config,
  ) {
    super(dsConfig);
  }
}

构造函数中的依赖项注入允许您通过应用程序的IoC容器以编程方式覆盖配置。

进一步阅读

调用不带REST连接器的外部API

REST连接器强制执行一个用于查询外部API的定义良好的接口,以便能够在发送请求之前进行验证。

如果这不合适,就可以创建一个新的服务作为HTTP查询的包装器。从这里开始,您可以公开自己的函数来向外部API处理请求。由于服务不需要遵循僵化的结构,因此可以将其自定义为您的用例。

还可以使用内置或外部库直接在控制器内创建新请求。

总的来说,在LoopBack 4中没有一种100%正确或错误的方法来处理某些事情,因此框架提供了许多解决相同问题的方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61560176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档