【发布时间】:2020-03-18 07:58:03
【问题描述】:
我在开发过程中使用了 3 个不同的 git 遥控器,即 testing、staging 和 production(在 Heroku 上)。我已经实现了一个.env 文件来处理环境变量,但只是想澄清一下我设置它们的方式是正确的。
我已经实现了以下操作来获取NODE_ENV var,并根据我设置的NODE_ENV var 相应地使用它在页面上附加.env var 字符串。
env = process.env.NODE_ENV;
envString = env;
SHEET_ID = process.env['SHEET_ID_' + envString];
在文档中,他们讨论了默认的 env vars,但我不确定 Heroku 是否有自己的 NODE_ENV var 或者它是如何工作的,我一直在我的本地 .env 中自己设置它(然后在推送时我将服务器 NODE_ENV var 更改为测试、登台或生产)
我下面的理解正确吗?
NODE_ENVvar 位于我的.env- 这也是从环境(即 Heroku)提供的默认 env var,还是我自己在 env 文件中设置 var 并将其镜像到服务器上是否正确?当推送到远程时,将本地
.env中的环境变量NODE_ENVvar 切换为NODE_ENV=testing、NODE_ENV=staging或NODE_ENV=production的正确方法是什么?然后将使用来自例如 Heroku 仪表板的设置变量,而不是本地变量。这是通过每个遥控器使用相同代码库而无需更新我的本地文件的最佳方式吗?
像 Heroku 这样的环境是否默认提供
NODE_ENV变量?我在控制台登录了process.env,但只找到了我的本地设置变量。
我正在努力设计尽可能可维护和高效的东西,当我最终与他人共享我的代码时,我希望它尽可能易于实现。
【问题讨论】:
标签: node.js heroku environment-variables