我正在尝试将生产数据库和电子邮件密码存储在环境变量中以隐藏给GitHub用户。
我在终端上使用export
命令设置我的变量:
$ export DB_PASS=mydbpass
但我无法通过process.env.DB_PASS
我不确定这是正确的方法。我看到可以通过运行来访问:
DB_PASS=mydbpass node server.js
但我正在寻找一种更实际的方法来做到这一点。
答案 0 :(得分:1)
这是一种实用的方法。
首先,您必须了解必须执行shell文件才能将数据传递给Node的process对象,即环境变量。
好的,让我们创建一个shell
文件,您将存储所有env变量。像这样,
#!/usr/bin/env bash
export NODE_ENV='development'
export ENVIRONMENT='development'
export PORT='4000'
export TEST_PORT='4040'
# MongoDB
export MONGO_URL='mongodb://localhost:27017/test'
我们将此文件命名为env.sh
。
现在假设您的节点应用为testApp
,并且您通过运行npm start
来运行您的应用,这就是您现在需要做的事情:
testApp~$ . ./env.sh && npm start
以上命令正在执行,它正在运行您的配置shell文件,然后运行您的节点应用程序,因此在您的节点应用程序中,您可以访问以下字段:
process.env.PORT
process.env.TEST_PORT // and so on, basically whatever you have in env.sh file
我希望一切都清楚。如果有任何澄清,请告诉我。