如何在角度js中访问本地ENV变量

时间:2014-01-14 14:21:57

标签: node.js angularjs

是否可以从angularjs访问ENV变量?

我通过Brunch.io

编译了一个1.2.8角应用程序

它作为heroku上的基本节点应用程序托管。 (我在本地编译;然后推送)

我已经在ENV变量的编译阶段读了一些关于令牌替换的事情。

但是,我更愿意将代码推送到几个不同的服务器,并使用ENV变量解析正确的本地设置。

谢谢!

2 个答案:

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