【问题标题】:How to access local ENV variables in angular js如何在角度 js 中访问本地 ENV 变量
【发布时间】:2015-10-07 18:11:00
【问题描述】:

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

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

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

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

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

谢谢!

【问题讨论】:

    标签: node.js angularjs


    【解决方案1】:

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

    快速示例:(Express.js)

    app.get("/rest/getenv", function(req, res) {
        var env = process.env.ENV_VARIABLE;
        res.json({result: env});
    });
    

    编辑:

    您需要使用类似字符串的令牌来保护这个休息网址。否则,任何人都可以访问该 url 并获取您的环境变量值。这可能是安全问题

    【讨论】:

    • 谢谢我很困惑。我需要 ENV 变量,所以我知道将前端指向后端的位置。但是我可以让“前端”有一个基本的休息电话。值得庆幸的是,这不会引起安全方面的担忧。
    • 即使您使用令牌保护 REST url,也不会使其安全,并且永远不会阻止人们获取环境变量值。仅仅因为令牌用于 AngularJS(前端)。因此,任何人都可以获得该令牌并使用它。
    【解决方案2】:

    有多种方法可以做到这一点,如上所述,您可以简单地进行 API 调用,但这会在您的应用中造成不必要的延迟。 我建议将您的环境变量注入服务器上的角度常量服务。这可能听起来有点令人困惑,但它比听起来更简单。

    我写了一篇博文,比较了将 env varialbes 注入 Angular 的不同方法,并解释了为什么应该采用这种方法:https://medium.com/@kudresov/a-better-way-to-inject-environmental-variables-in-angular-d3b2d01a3c5e

    我还创建了示例 Node Angular 项目来展示它是如何工作的:https://github.com/kudresov/angular-config-vars

    【讨论】:

      猜你喜欢
      • 2019-01-20
      • 2020-01-20
      • 2016-06-11
      • 2019-01-29
      • 2015-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-25
      相关资源
      最近更新 更多