我試圖在環境變量上存儲生產數據庫和電子郵件密碼以隱藏給GitHub用戶。在Node.js中訪問環境變量的替代方法
我成立了終端使用export
命令我瓦爾:
$ export DB_PASS=mydbpass
但我不能訪問通過process.env.DB_PASS
我不知道這是正確的方式。我看到這是可能通過運行訪問:
DB_PASS=mydbpass node server.js
但是我正在尋找這樣做一個更實際的方式。
我試圖在環境變量上存儲生產數據庫和電子郵件密碼以隱藏給GitHub用戶。在Node.js中訪問環境變量的替代方法
我成立了終端使用export
命令我瓦爾:
$ export DB_PASS=mydbpass
但我不能訪問通過process.env.DB_PASS
我不知道這是正確的方式。我看到這是可能通過運行訪問:
DB_PASS=mydbpass node server.js
但是我正在尋找這樣做一個更實際的方式。
這是一個切實可行的方法。
首先,您已經明白必須執行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
我希望一切都清楚了。如有任何澄清,請告知我。
非常感謝!它工作像我需要 –
我很高興它幫助:) –
你嘗試使用sudo設置你的env var嗎? –
sudo不執行導出操作:/ –