2017-06-04 32 views
1

我試圖在環境變量上存儲生產數據庫和電子郵件密碼以隱藏給GitHub用戶。在Node.js中訪問環境變量的替代方法

我成立了終端使用export命令我瓦爾:

$ export DB_PASS=mydbpass

但我不能訪問通過process.env.DB_PASS

我不知道這是正確的方式。我看到這是可能通過運行訪問:

DB_PASS=mydbpass node server.js

但是我正在尋找這樣做一個更實際的方式。

+0

你嘗試使用sudo設置你的env var嗎? –

+0

sudo不執行導出操作:/ –

回答

2

這是一個切實可行的方法。

首先,您已經明白必須執行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 

我希望一切都清楚了。如有任何澄清,請告知我。

+0

非常感謝!它工作像我需要 –

+0

我很高興它幫助:) –