在我制作对象的副本之前,无法访问Dotenv process.env键
我将.env添加到我的Node Express应用程序中,当我这样做时:
console.log(process.env)
我看到一些我没有添加的默认进程env变量,以及我添加到我的.env文件(TEST_VAR)的一个自定义变量:
{
npm_package_devDependencies_nodemon: '^1.11.0',
npm_config_version_tag_prefix: 'v',
TEST_VAR: '12345'
}
然而,当我在下一行时,我做:
console.log(process.env.TEST_VAR)
我明白了:
undefined
但是,运行这个:
console.log(process.env.npm_package_devDependencies_nodemon)
返回预期的:
'^1.11.0'
我能够解决这个问题:
var envVars = { ... process.env }
console.log(envVars.TEST_VAR)
实际输出我的.env文件中设置的值。
在我能够访问看似存在的变量之前,有没有人可以解释为什么我需要制作副本?
回答如下:dotenv要求.env
文件采用特定格式,并且doesn't include JSON。
它看起来更像VARIABLE_KEY=VARIABLE_VALUE
。在你的情况下,它看起来像这样
npm_package_devDependencies_nodemon=^1.11.0
npm_config_version_tag_prefix=v
TEST_VAR=12345