使用环境文件进行NestJs TypeORM配置 [英] NestJs TypeORM configuration using env files

查看:1196
本文介绍了使用环境文件进行NestJs TypeORM配置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have two .env files like dev.env and staging.env. I am using typeorm as my database ORM. I would like to know how to let typeorm read either of the config file whenever I run the application. Error: No connection options were found in any of configurations file from typeormmodule.

推荐答案

您可以创建 ConfigService 读取与环境变量NODE_ENV对应的文件:

You can create a ConfigService that reads in the file corresponding to the environment variable NODE_ENV:

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

1) Set the NODE_ENV variable in your start scripts:

"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文件

2) Read the corresponding .env file in the ConfigService

@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设置数据库连接:

3) Use the ConfigService to set up your database connection:

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

这篇关于使用环境文件进行NestJs TypeORM配置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆