gpt4 book ai didi

bash - 无法在我的 Node.js 应用程序中读取我的环境变量

转载 作者:IT老高 更新时间:2023-10-28 23:07:03 26 4
gpt4 key购买 nike

我在 Ubuntu 12.04 上,我只是在学习环境变量。我正在尝试从我的应用程序中读取自定义变量,但它始终显示为 undefined .这是我的测试应用程序的代码:

// app.js

console.log('Value: ' + process.env.NODE_ENV);

如果我运行以下命令,你会看到变量有一个值:

$ NODE_ENV=production
$ echo $NODE_ENV
production

我可以echo $NODE_ENV一整天,它会继续向我展示“生产”,但是当我这样做时process.env.NODE_ENV在我的 Node 应用程序中,它总是显示“未定义”。

$ node app.js
Value: undefined

这是奇怪的部分,如果我显示另一个我知道已经存在的环境变量,比如 process.env.PATH ,然后就可以了。

$ node app.js
Value: /usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

另一个怪癖是命令 printenv list似乎不包含我的自定义变量 NODE_ENV尽管 echo $NODE_ENV向我显示正确的值。 printenv NODE_ENV也没有显示,但是 printenv PATH显示正确的值,就像我访问 PATH 时一样在我的 Node 应用程序中。

最佳答案

您需要导出 shell 变量,以使它们可用于您在 shell 中执行的进程。

比较这个命令的输出:

FOO=bar; bash -c 'echo $FOO'

输出如下:

export FOO=bar; bash -c 'echo $FOO'

关于bash - 无法在我的 Node.js 应用程序中读取我的环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10803653/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com