如何区分Heroku Config Variables与.Env变量之间的区别

时间:2018-05-14 03:05:06

标签: node.js heroku key

我是一个原生的iOS Swift开发者,我已经轻轻地涉足Node.js所以这个过程对我来说有点陌生。

如果我想隐藏变量,请使用节点我首先在我的dotenv module文件中导入requireapp.js,设置.env变量,将其添加到{ {1}}文件,然后使用.gitignore模块访问它们:

dotenv

在Heroku中,我使用以下方法将密钥设置为秘密:

// on the cli
$ npm install dotenv --save
$ touch .env
$ touch .gitignore 

// in the .env file
MY_SECRET_KEY=12345
// finally add the .env file to the .gitignore filel

// in the app.js file
const dotenv = require('dotenv');
dotenv.load();

initializeSomethingWith(process.env.MY_SECRET_KEY)

我使用:

访问heroku配置变量
$ heroku config:set MY_SECRET_KEY=123456789
$ git push heroku master

我的困惑在于,一旦我需要process.env.MY_SECRET_KEY ,它如何区分.env文件中的内容与我为heroku变量设置的内容之间的区别?

app.js文件:

dotenv module

当然,常识会说不要将键命名为同名。

2 个答案:

答案 0 :(得分:0)

在Heroku上使用node.js中的环境变量的推荐方法不是在代码中明确require('dotenv')。 相反,请使用heroku config:set为您的Heroku应用设置env vars,就像您一直在做的那样。 在您的开发环境中,将您的本地env变量放在.env文件中,但不要将.env添加到git(即将其放在.gitignore中)。 然后,使用heroku local运行您的应用(基于您的Procfile)。 当heroku local执行您的应用时,它会在.env中定义您的环境变量,以便通过process.env.ENV_VAR_XYZ在您的代码中引用它们。

有关详细信息,请参阅here

答案 1 :(得分:0)

在玩了一段时间之后似乎如果我通过运行npm start在本地运行文件,它将使用12345的值,但如果它在Heroku上远程使用,那么它将使用值123456789。

const dotenv = require('dotenv');
dotenv.load();

// REMOTE VALUE
var isThisAHerokuKey = process.env.MY_SECRET_KEY // key is 123456789

// LOCAL VALUE
var orIsThisADotEnvKey = process.env.MY_SECRET_KEY // key is 12345

// DEPENDS ON WETHER USED LOCALLY or REMOTELY
initializeSomethingWith(process.env.MY_SECRET_KEY)