Node.jsで環境変数を読み取る


回答:


1879
process.env.ENV_VARIABLE

ENV_VARIABLEアクセスする変数の名前はどこですか。

Node.jsドキュメントをprocess.env参照してください。


4
これはノードプロセスとそのサブプロセスの外には表示されないことに注意してください。たとえばenv、ノードプロセスの実行中に別のシェルウィンドウで起動した場合や、ノードプロセスの終了後に同じシェルで起動した場合は表示されません。
Marko Bonaci、2015年

17
これは、変数の割り当てにも機能します。 process.env.FOO = "foo";動作します。
ヒヨコ

16
これはReactアプリケーションでは機能しないことに言及する価値があります。process.envセキュリティ上の理由から消毒されています。で始まる変数のみREACT_ENV_が使用可能です。参照:github.com/facebookincubator/create-react-app/blob/master/…–
マークエディントン

7
@MarkEdingtonそれはそうあるべきだと思いますREACT_APP_
Mr. 14

5
@ Mr.14そうです!REACT_ENV_ではなくREACT_APP_です
Mark Edington

133

Node.jsを使用する場合、process.envオブジェクトからキーによって環境変数を取得できます。

例えば

var mode   = process.env.NODE_ENV;
var apiKey = process.env.apiKey; // '42348901293989849243'

これがnode.jsで環境変数を設定することを説明する答えです


上記のprocess.envメソッドを使用するには、どのlibが必要ですか?
user_mda 2015年

3
@user_mda process.envはnode.js apiに組み込まれています。
Jason Axelson 2016年

process.envに必要なものを設定するだけですか?なぜ人々が言うのではなく、node.jsによってrequire()された設定オブジェクトをそこに設定するのですか?
PDN

3
process.envを使用すると、オペレーティングシステムレベルで設定された環境変数にアクセスできます。これらはさまざまな方法で設定でき、アプリのデプロイ場所によって異なります。たとえば、私はローカルアプリをNODE_ENV = development NODE_PATH = lib node server.jsを使用して実行することがよくあります。次に、process.env.NODE_PATHは「lib」を返します
NectarSoft

57

あなたはNode.jsのプログラムで生成された文字列のキーを使用する場合、たとえば、var v = 'HOME'あなたが使用することができます process.env[v]

それ以外の場合process.env.VARNAMEは、プログラムにハードコーディングする必要があります。


なぜあなたは持っていますprocess.env['HOME']か?
AlgoRythm

35

Node.JSで環境変数を取得するには、process.env.VARIABLE_NAMEを使用できますにプロパティを割り当てると、値が暗黙的に文字列に変換されることを忘れないでください。

ブール論理を避ける

.envファイルがSHOULD_SEND = falseまたはSHOULD_SEND = 0のような変数を定義している場合でも、値は文字列(それぞれ「false」と「0」)に変換さ、ブール値として解釈されません。

if (process.env.SHOULD_SEND) {
 mailer.send();
} else {
  console.log("this won't be reached with values like false and 0");
}

代わりに、明示的なチェックを行う必要があります。環境の名前によっては長い道のりをたどることがわかった。

 db.connect({
  debug: process.env.NODE_ENV === 'development'
 });

1
明示的にチェックする必要があるブールenv変数に「yes」と「no」を使用するのが好きです。これにより、多くのプログラミング言語での問題が回避されます。
Dogweather

22

envパッケージを使用して、プロジェクトごとに環境変数を管理できます。

  • .envプロジェクトディレクトリの下にファイルを作成し、そこにすべての変数を配置します。
  • アプリケーションエントリファイルの先頭に次の行を追加します。
    require('dotenv').config();

できました。これで、を使用して環境変数にアクセスできますprocess.env.ENV_NAME


9
dotenvパッケージは便利ですが、尋ねられた質問は、process.env.ENV_VARIABLEを読むことで答えられます。dovenvパッケージは、ファイルから環境に設定をロードすることに関するすべてです。
ロバートパターソン

それが私のポイントですenv。環境変数を管理し、ライブラリからロードします。
Huy Vo

1
envdirユーティリティを使用して、node.js固有ではない方法で同じことを行うことができます。
クリスジョンソン

github.com/bitrise-io/envmanに似ていますが、これもnode固有ではありません。
MarkHu 2018

1
あなたは私の日を作りました!どうもありがとう!
Vaha

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.