2014-01-14 20 views
6

angularjからENV変数にアクセスすることは可能ですか?角度js内のローカルENV変数にアクセスする方法

私はそれがHerokuの上の基本的なノードアプリとしてホストされているBrunch.io

を経由してコンパイルされている角度1.2.8アプリを持っています。 (私はローカルでコンパイルしてからプッシュします)

ENV変数のコンパイル段階で、トークンの置換に関するいくつかのことを読んだことがあります。

しかし、私はずっとむしろいくつかの異なるサーバーにコードを押し上げて、ENV変数だけを使って正しいローカル設定を解決することができます。

ありがとうございます!

答えて

10

ブラウザでENV変数を取得することはできません。あなたは、クライアントに応答当時、バックエンドでのenvを、サーバー上の残りのサービスに要求を送信し、取得することができます

クイック例:(Express.js)

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

編集:

この残りのURLを文字列のようなトークンで保護する必要があります。そうでなければ誰でもそのURLにアクセスして環境変数の値を取得できます。これはセキュリティ上の懸念になる可能性があります

+0

ありがとう私は混乱しました。私はバックエンドにフロントエンドを指す場所を知るためにENV変数が必要でした。しかし、私は "フロントエンド"は基本的な休息を呼び出すことができます。ありがたいことに、セキュリティ上の懸念事項であることは何もありません。 –

8

これを行うには複数の方法がありますが、上記のように簡単にAPI呼び出しを行うことができますが、アプリで不必要な遅延が発生します。 あなたのenv変数をあなたのサーバー上の角度定数サービスに注入することをお勧めします。おそらく少し混乱するように聞こえるかもしれませんが、それは聞こえるより簡単です。

私はENVを注入するさまざまな方法を比較するブログ記事は、角度とあなたがこのアプローチを取るべきである理由を説明にvarialbes書かれています:https://github.com/kudresov/angular-config-vars

https://medium.com/@kudresov/a-better-way-to-inject-environmental-variables-in-angular-d3b2d01a3c5e

また、私はそれがどのように機能するかを示すためのサンプルノード角度プロジェクトを作成しました

+0

素晴らしいブログ投稿ありがとう – timhc22

関連する問題