即使导出后也未定义Process.env.VAR_NAME

时间:2019-05-10 00:00:01

标签: javascript node.js environment-variables

访问我在linux服务器上创建的环境变量时遇到一些麻烦。 我通过添加以下内容来永久设置变量:export VAR_NAME=value 进入/ etc / environment文件。

该变量在我使用printenv命令时出现,但是当我使用PM2启动服务器时,在调用process.env.VAR_NAME时该变量不存在。

我尝试过重启机器,重启bash,然后重启pm2进程多次。 似乎需要重新启动某些实例,因为据我了解,我写入/ etc / environment文件的内容是在启动时执行的,因此该变量在技术上不是永久的,因此重新启动实际上并没有做任何事情。 / p>

有关需要重新启动哪个实例的任何信息都将有所帮助,或者完全采用其他方式完成此操作也可以。

修改
在节点应用程序中调用process.env并没有被定义为未定义,我看到了该应用程序中列出的所有变量,但是我创建的变量未在此处列出。但是当我从终端拨打电话时就会列出

1 个答案:

答案 0 :(得分:0)

我相信您正在寻找的是这个包装。 https://www.npmjs.com/package/dotenv

dotenv软件包允许您在项目的根目录中创建一个名为“ .env”的文件,您可以在该文件中为您的进程添加环境变量。

您可以从本教程https://www.twilio.com/blog/working-with-environment-variables-in-node-js-html

了解更多信息

我不认为您可以在终端中“导出”变量并使它们出现在process.env对象中。