nestJs 处理环境变量
Posted
技术标签:
【中文标题】nestJs 处理环境变量【英文标题】:nestJs handle env variables 【发布时间】:2019-09-29 04:47:56 【问题描述】:如文档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 中获取环境变量路径
【问题讨论】:
提供filePath
你想要的价值。比如my_test.env
,那么你要设置你的NODE_ENV
为my_test
,我们设置NODE_ENV
环境变量值的方法太多了,简单的方法NODE_ENV=my_test npm run start
Defining Node environment in Nest.js的可能重复
也看到这个答案***.com/a/54364907/4694994
【参考方案1】:
我也遇到过同样的问题。通过在文件main.ts
中手动导入dotenv 来轻松修复它,就像在下面的示例中一样(请确保您已经安装了dotenv
):
import NestFactory from '@nestjs/core';
import config from 'dotenv';
config();
// all rest of your code
希望对您有所帮助!
【讨论】:
以上是关于nestJs 处理环境变量的主要内容,如果未能解决你的问题,请参考以下文章