可以從angularjs訪問ENV變量嗎?如何訪問角度js中的局部ENV變量
我有一個角1.2.8應用程序正在通過Brunch.io
編譯它作爲託管在Heroku上基本節點的應用程序。 (我在本地編譯;然後推)
我已經在ENV變量的編譯階段讀過一些關於令牌替換的東西。
但我更願意將代碼推送到幾個不同的服務器,並使用ENV變量解決正確的本地設置。
謝謝!
可以從angularjs訪問ENV變量嗎?如何訪問角度js中的局部ENV變量
我有一個角1.2.8應用程序正在通過Brunch.io
編譯它作爲託管在Heroku上基本節點的應用程序。 (我在本地編譯;然後推)
我已經在ENV變量的編譯階段讀過一些關於令牌替換的東西。
但我更願意將代碼推送到幾個不同的服務器,並使用ENV變量解決正確的本地設置。
謝謝!
您無法在瀏覽器上獲得ENV變量。您可以在後臺發送請求到REST服務的服務器上,並獲得ENV,然後響應返回給客戶端
簡單的例子:(Express.js)
app.get("/rest/getenv", function(req, res) {
var env = process.env.ENV_VARIABLE;
res.json({result: env});
});
編輯:
您需要使用類似字符串的標記來保護這個剩餘網址。否則,任何人都可以訪問該網址並獲取您的環境變量值。這可能是安全問題
有多種方式可以做到這一點,如上所述,您可以簡單地進行API調用,但是這會在您的應用程序中造成不必要的延遲。 我會建議將您的env變量注入到您的服務器上的角度常量服務中。這可能聽起來有點令人困惑,但它比聽起來簡單。
我已經寫了一篇博客文章比較注射ENV不同的方式varialbes成角並解釋爲什麼你應該採取這種做法:https://medium.com/@kudresov/a-better-way-to-inject-environmental-variables-in-angular-d3b2d01a3c5e
而且我已經創建的樣本節點角項目,以展示它是如何工作的:https://github.com/kudresov/angular-config-vars
偉大的博客文章感謝 – timhc22
謝謝我,我很困惑。我需要ENV變量,所以我知道將前端指向後端的位置。不過,我可以讓「前端」有一個基本的休息電話。謝天謝地,這絕對不是安全問題。 –