我是一个原生的iOS Swift开发者,我已经轻轻地涉足Node.js
所以这个过程对我来说有点陌生。
如果我想隐藏变量,请使用节点我首先在我的dotenv module
文件中导入require
,app.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
当然,常识会说不要将键命名为同名。
答案 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)