是否可以从angularjs访问ENV变量?
我通过Brunch.io
编译了一个1.2.8角应用程序它作为heroku上的基本节点应用程序托管。 (我在本地编译;然后推送)
我已经在ENV变量的编译阶段读了一些关于令牌替换的事情。
但是,我更愿意将代码推送到几个不同的服务器,并使用ENV变量解析正确的本地设置。
谢谢!
答案 0 :(得分:11)
您无法在浏览器上获取ENV变量。您可以向服务器上的休息服务发送请求,并在后端获取env,然后回复客户端
快速示例:(Express.js)
app.get("/rest/getenv", function(req, res) {
var env = process.env.ENV_VARIABLE;
res.json({result: env});
});
修改强>
您需要使用类似字符串的标记来保护此休息网址。否则,任何人都可以访问该网址并获取您的环境变量值。这可能是安全问题
答案 1 :(得分:8)
有多种方法可以执行此操作,如上所述,您可以简单地进行API调用,但这会在您的应用中造成不必要的延迟。 我建议将env变量注入服务器上的角度常量服务。这可能听起来有点令人困惑,但它比听起来更简单。
我写了一篇博文,比较了将env varialbes注入角度的不同方法,并解释了为什么要采用这种方法:https://medium.com/@kudresov/a-better-way-to-inject-environmental-variables-in-angular-d3b2d01a3c5e
此外,我已创建示例Node Angular项目以显示其工作原理:https://github.com/kudresov/angular-config-vars