如何从AngularJS访问Heroku上的环境变量

Bun*_*ert 5 heroku node.js angularjs

我在Heroku上有3个AngularJS应用程序.他们每个人都使用不同的API.

(例如:angularjs-dev消耗api-dev,angularjs-qa消耗api-qa)

我在下面创建了这样的常量文件

SITE     = 'dev'
API_SITE = {
      dev       : 'dev-url',
      qa        : 'qa-url',
      production: 'production-url'
}
Run Code Online (Sandbox Code Playgroud)

然后,当我想要API网址时,我会这样称呼它 API_SITE[SITE]

这个问题是当我想部署到qa时,我必须SITE改为qa.

我想知道:我们可以在Heroku上定义AngularJS读取环境变量,因此我们不必再次手动更改它

注意:我知道AngularJS在客户端运行.所以,我不知道该怎么做.

任何人?

Bun*_*ert 10

如果有人正在寻找解决方案(基于我的环境:Heroku上的AngularJS和NodeJS)

我将此代码添加到web.js(NodeJS启动文件)

var options = {};
var jade = require('jade');

app.get('/site.js', function(req, res){
    res.send("var SITE='"+process.env.SITE+"'");
});
Run Code Online (Sandbox Code Playgroud)

然后,在文件index.html中我刚刚添加<script src="/site.js"></script>了retrive SITE变量.

它运作良好.