在Node.js中访问环境变量的替代方法

时间:2017-06-04 16:10:07

标签: node.js

我正在尝试将生产数据库和电子邮件密码存储在环境变量中以隐藏给GitHub用户。

我在终端上使用export命令设置我的变量:

$ export DB_PASS=mydbpass

但我无法通过process.env.DB_PASS

访问

我不确定这是正确的方法。我看到可以通过运行来访问:

DB_PASS=mydbpass node server.js

但我正在寻找一种更实际的方法来做到这一点。

1 个答案:

答案 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

我希望一切都清楚。如果有任何澄清,请告诉我。