2014-01-14 14 views
6

Kann man auf ENV-Variablen von angularjs zugreifen?Zugriff auf lokale ENV-Variablen in angular js

Ich habe einen Winkel 1.2.8 app, wird über Brunch.io zusammengestellt

Es als Basisknoten App auf Heroku gehostet. (Ich kompiliere lokal; dann drücken)

Ich habe ein paar Dinge über Token-Ersatz während der Kompilierungsphase für ENV-Variablen gelesen.

Allerdings wäre es mir lieber, wenn ich den Code auf mehrere verschiedene Server hochschieben könnte und die korrekten lokalen Einstellungen nur mit den ENV-Variablen auflösen würde.

Danke!

Antwort

10

Sie können keine ENV-Variablen im Browser abrufen. Sie können Anfrage an einen Rest-Dienst auf dem Server, und erhalten env auf Backend, dann Antwort zurück an den Client

Schnell Beispiel senden: (Express.js)

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

Edit:

Sie müssen diese Rest-URL mit Token wie Strings schützen. Sonst kann jeder diese URL erreichen und Ihren Umgebungsvariablenwert erhalten. Dies kann Sicherheitsbedenken sein

+0

Danke, ich war verwirrt. Ich brauchte die ENV-Variablen, damit ich weiß, wo das Frontend auf das Backend zu richten ist. Allerdings kann ich dem "Frontend" einen Grund Ruhe-Ruf geben. Zum Glück ist es nichts, was sicherheitsrelevant wäre. –

8

Es gibt mehrere Möglichkeiten, dies zu tun und wie oben erwähnt, können Sie einfach und API-Aufruf, aber das schafft eine unnötige Verzögerung in Ihrer App. Ich würde empfehlen, Ihre Env-Variablen in Ihren eckigen konstanten Dienst auf Ihrem Server zu injizieren. Das klingt wahrscheinlich etwas verwirrend, aber es ist einfacher als es klingt.

ich einen Blog-Post geschrieben haben, zu vergleichen verschiedene Arten von env Injektion varialbes in Winkel- und zu erklären, warum Sie diesen Ansatz nehmen sollte: https://medium.com/@kudresov/a-better-way-to-inject-environmental-variables-in-angular-d3b2d01a3c5e

Auch habe ich Probe Node Angular Projekt erstellt zu zeigen, wie es funktioniert: https://github.com/kudresov/angular-config-vars

+0

toller Blogbeitrag danke – timhc22