Node.js 如何在angular js中访问本地环境变量

Node.js 如何在angular js中访问本地环境变量,node.js,angularjs,Node.js,Angularjs,可以从angularjs访问环境变量吗 我有一个angular 1.2.8应用程序正在通过Brunch.io编译 它作为heroku上的基本节点应用程序托管。(我在本地编译;然后推送) 我已经阅读了一些关于ENV变量编译阶段的令牌替换的内容 但是,我更希望能够将代码推送到几个不同的服务器,并让它仅使用ENV变量来解析正确的本地设置 谢谢 您无法在浏览器上获取环境变量。您可以将请求发送到服务器上的rest服务,并在后端获取env,然后将响应返回到客户端 快速示例:(Express.js) 编辑:

可以从angularjs访问环境变量吗

我有一个angular 1.2.8应用程序正在通过Brunch.io编译

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

我已经阅读了一些关于ENV变量编译阶段的令牌替换的内容

但是,我更希望能够将代码推送到几个不同的服务器,并让它仅使用ENV变量来解析正确的本地设置


谢谢

您无法在浏览器上获取环境变量。您可以将请求发送到服务器上的rest服务,并在后端获取env,然后将响应返回到客户端

快速示例:(Express.js)

编辑:


您需要使用类似令牌的字符串来保护此rest url。或者,任何人都可以访问该url并获取您的环境变量值。这可能是安全问题

有多种方法可以做到这一点,如上所述,您可以简单地进行API调用,但这会在应用程序中造成不必要的延迟。 我建议将env变量注入服务器上的angular constant服务中。这听起来可能有点混乱,但它比听起来简单

我写了一篇博客文章,比较了将环境变量注入angular的不同方法,并解释了为什么应该采用这种方法:


此外,我还创建了示例节点Angular project来展示它的工作原理:

谢谢,我很困惑。我需要ENV变量,以便知道前端到后端的位置。不过,我可以让“前端”有一个基本的rest调用。谢天谢地,这并不是什么安全方面的问题。
app.get("/rest/getenv", function(req, res) {
    var env = process.env.ENV_VARIABLE;
    res.json({result: env});
});