当前位置: 首页 > 面试题库 >

使用环境文件进行NestJs TypeORM配置

柳威
2023-03-14
问题内容

我有两个.env文件,例如dev.envstaging.env。我正在使用typeorm作为我的数据库ORM。我想知道每当我运行应用程序时如何让typeorm读取其中一个配置文件。Error: No connection options were found in any of configurations file来自typeormmodule。


问题答案:

您可以创建一个ConfigService来读取与环境变量相对应的文件NODE_ENV

1)NODE_ENV在您的启动脚本中设置变量:

"start:dev": "cross-env NODE_ENV=dev ts-node -r tsconfig-paths/register src/main.ts",
"start:staging": "cross-env NODE_ENV=staging node dist/src/main.js",

2)在ConfigService中读取相应的.env文件

@Injectable()
export class ConfigService {
  private readonly envConfig: EnvConfig;

  constructor() {
    this.envConfig = dotenv.parse(fs.readFileSync(`${process.env.NODE_ENV}.env`));
  }

  get databaseHost(): string {
    return this.envConfig.DATABASE_HOST;
  }
}

3)使用ConfigService来建立您的数据库连接:

TypeOrmModule.forRootAsync({
  imports:[ConfigModule],
  useFactory: async (configService: ConfigService) => ({
    type: configService.getDatabase()
    // ...
  }),
  inject: [ConfigService]
}),


 类似资料:
  • 首先,一个sentinel可以配置多个master。一个master的配置如下: port 26379 ###定义目录存放 dir "/redis" ###监控mymaster(可自定义-但只能包括A-z 0-9和”._-”),注意quorum只影响ODOWN的判断,但是不影响failover,发生failover的条件必须是半数sentinel认为老Master已经ODOWN。此参数建议设置为s

  • 我在web应用程序中工作。我正在使用spring分析加载基于环境的属性。下面是样品 在web.xml中,我们可以给出配置文件 现在,我的查询是针对我需要创建一个单独的Java类的每个环境。 问题:是否可能只有一个类,比如提供配置文件名称作为某个绑定参数,比如。 同时,让我知道是否有其他更好的选择,以实现同样的。

  • 我试图为我用Kotlin编写的Micronaut web应用程序使用两个数据源:一个是mysql数据库,另一个是执行测试时使用的内存H2数据库。 我尝试过只使用数据库作为默认的生产数据源,所以关于它的配置字段应该是正确的。 应用程序通过执行 我尝试将数据源放在单独的配置文件中,和位于目录中,并且只放置

  • 利用xcconfig文件完成多环境配置 xcconfig本质上是一个key-value配置文件 xcconfig文件命名建议: 所在目录-Project名称.环境 (参考CocoaPods) xcode build settings环境参数缩写查询资料: xcodebuildsettings 一、xcconfig文件的创建和配置导入 新建xcconfig文件, 保证项目结构清晰, 单独新建目录管理

  • 我是新来的。我想知道他们的任何其他方法来设置连接端口,管理端口,记录器级别和所有配置参数,而不是通过使用。YML 文件。

  • 出于某种原因,我不得不使用环境变量,而不是将系统属性传递给mvn命令。所以,我使用${env。PROFILE}作为属性名,pom.xml中的配置文件设置显示如下: 然后,我尝试激活配置文件到在线,但我失败了,命令行显示如下: 然后打开maven调试模式(-X),属性如下所示: 我们可以在上述属性列表中找到属性: “PROFILE”变量似乎是在envrionment中设置的。但是,“在线”配置文件未