0

如文档here中所述,我将在nestjs中配置enivrement变量:

在我的服务构造函数中,我得到了 env 文件路径

import * as dotenv from 'dotenv';
import * as fs from 'fs';

export class ConfigService {
  private readonly envConfig: { [key: string]: string };

  constructor(filePath: string) {
    this.envConfig = dotenv.parse(fs.readFileSync(filePath))
    console.log(this.envConfig)
  }

  get(key: string): string {
    return this.envConfig[key];
  }
}

然后在配置模块中我设置配置服务

  providers: [
    {
      provide: ConfigService,
      useValue: new ConfigService(`${process.env.NODE_ENV}.env`),
    },
  ],
  exports: [ConfigService],
})

当前行为

实际上我得到了未定义的 process.env.NODE_ENV 值

预期行为

在 process.env.NODE_ENV 中获取环境变量路径

4

1 回答 1

2

我遇到了同样的问题。通过在文件中手动导入 dotenv 来轻松修复它main.ts,就像在下面的示例中一样(请确保您已经安装dotenv):

import { NestFactory } from '@nestjs/core';
import { config } from 'dotenv';
config();
// all rest of your code

希望它可能会有所帮助!

于 2020-03-16T16:31:27.347 回答