Javascript nestJs句柄环境变量
我将在nestjs中配置enivrement变量,如文档中所述: 在我的服务构造函数中,我得到env文件路径Javascript nestJs句柄环境变量,javascript,node.js,nestjs,dotenv,Javascript,Node.js,Nestjs,Dotenv,我将在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.envC
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值未定义
预期行为
get env variable path in process.env.NODE_env我也遇到过同样的问题。Easy通过在文件main.ts中手动导入dotenv修复了此问题,如以下示例所示。请确保已安装dotenv: 从'@nestjs/core'导入{NestFactory}; 从'dotenv'导入{config}; 配置; //所有其他代码 希望能有帮助 提供所需的文件路径值。例如,它是my_test.env,然后您必须将节点_env设置为my_test,我们有太多的方法来设置节点_env环境变量值,一种简单的方法NODE_env=my_test npm run start可能重复的也可以看到这个答案