Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 多个Heroku远程设备的环境变量配置,即测试、暂存和生产_Node.js_Heroku_Environment Variables - Fatal编程技术网

Node.js 多个Heroku远程设备的环境变量配置,即测试、暂存和生产

Node.js 多个Heroku远程设备的环境变量配置,即测试、暂存和生产,node.js,heroku,environment-variables,Node.js,Heroku,Environment Variables,我在开发过程中使用了3种不同的git遥控器,即测试、暂存和生产(在Heroku)。我已经实现了一个.env文件来处理环境变量,但我只是想澄清一下,我设置环境变量的方法是正确的 我已经实现了以下功能来获取节点_ENV变量,并根据节点_ENV变量集,相应地使用它在页面上附加.ENV变量字符串 env = process.env.NODE_ENV; envString = env; SHEET_ID = process.env['SHEET_ID_' + envString]; 在文档中,他们讨论了

我在开发过程中使用了3种不同的
git
遥控器,即
测试
暂存
生产
(在
Heroku
)。我已经实现了一个
.env
文件来处理环境变量,但我只是想澄清一下,我设置环境变量的方法是正确的

我已经实现了以下功能来获取
节点_ENV
变量,并根据
节点_ENV
变量集,相应地使用它在页面上附加
.ENV
变量字符串

env = process.env.NODE_ENV;
envString = env;
SHEET_ID = process.env['SHEET_ID_' + envString];
在文档中,他们讨论了默认的
env
var,但我不确定Heroku是否有自己的
NODE_env
var,或者它是如何工作的,我一直在我的本地
.env
中设置它(然后在按下按钮时,我将服务器
NODE_env
var更改为测试、暂存或生产)

我下面的理解正确吗

  • 节点_ENV
    变量位于my
    .ENV
    中-这也是从环境ie Heroku提供的默认环境变量,还是我自己在ENV文件中设置变量并在服务器上镜像它是正确的

  • 当按下遥控器时,根据哪个遥控器,将我的本地
    .env
    中的env var
    NODE\u env
    切换到
    NODE\u env=testing
    NODE\u env=staging
    NODE\u env=production
    ?然后将使用例如Heroku dashboard的set vars,而不是本地vars

  • 这是通过每个远程设备使用相同代码库而不必更新本地文件的最佳方法吗

  • 像Heroku这样的环境在默认情况下是否提供
    NODE\u ENV
    var?我登录了
    process.env
    ,但只找到了我的本地设置变量

  • 我正在尝试设计尽可能可维护和高效的东西,当我最终与他人共享我的代码时,我希望它尽可能容易实现。

    遵循这些原则,所有配置都应该在环境变量中进行

    对于你的应用程序,这意味着

    • .env
      文件只是将配置放入本地环境以使应用程序工作的助手
    • heroku上的每个应用程序(在您的情况下,包括登台、测试、生产)都将通过配置设置。它们最终会出现在应用程序dynos的本地环境中,以及您的插件(例如数据库凭据)中的任何内容