web-dev-qa-db-ja.com

Node.jsで環境変数が設定されているかどうかを確認するにはどうすればよいですか?

Express JS サーバーで環境変数が設定されているかどうかを確認し、設定されているかどうかに応じて異なる操作を実行します。

私はこれを試しました:

if(process.env.MYKEY !== 'undefined'){
    console.log('It is set!');
} else {
    console.log('No set!');
}

process.env.MYKEYなしでテストしていますが、コンソールに「It is set」と表示されます。

18
user3812780

これは私のNode.jsプロジェクトでうまく機能しています:

if(process.env.MYKEY) { 
    console.log('It is set!'); 
}
else { 
    console.log('No set!'); 
}
24
kucing_terbang

環境変数にキーが存在するかどうかを確認してみませんか?

if ('MYKEY' in Object.keys(process.env))
    console.log("It is set!");
else
    console.log("Not set!");
3
MikeCPT

thisスニペットを使用して、環境変数が設定されているかどうかを確認します

if ('DEBUG' in process.env) {
  console.log("Env var is set:", process.env.DEBUG)
} else {
  console.log("Env var IS NOT SET")
}

理論メモ

NodeJS 8 docs で述べたように:

process.envプロパティは、ユーザー環境を含むオブジェクトを返します。 environ(7) を参照してください。

[...]

process.envにプロパティを割り当てると、値が暗黙的に文字列に変換されます。

 process.env.test = null
 console.log(process.env.test);
 // => 'null'
 process.env.test = undefined;
 console.log(process.env.test);
 // => 'undefined'

ただし、変数が環境に設定されていない場合、適切なキーprocess.envオブジェクトに存在せず、対応するprocess.envのプロパティはundefinedです。

次に、もう1つの例を示します(例で使用されている引用符に注意してください)。

console.log(process.env.asdf, typeof process.env.asdf)
// => undefined 'undefined'
console.log('asdf' in process.env)
// => false

// after touching (getting the value) the undefined var 
// is still not present:
console.log(process.env.asdf)
// => undefined

// let's set the value of the env-variable
process.env.asdf = undefined
console.log(process.env.asdf)
// => 'undefined'

process.env.asdf = 123
console.log(process.env.asdf)
// => '123'

コードスタイルに関する補足説明

元の質問に言及する価値があります:

Node.jsで環境変数が設定されているかどうかを確認するにはどうすればよいですか?

既に回答が含まれています。マークアップを確実に追加するには:

How can I [check if] an [env var] [is set] in [Node.js]?

次に、これを文字通りJavaScriptに変換します。

if ('env_var' in process.env)

どこ:

  • [check if] =if
  • [env var] = 'env_var'
  • [is set] =in
  • [Node.js environment] =process.env

シンプルで明確。

1
maxkoryukov

これについて maxkoryukov が何を言っているのかがわかりますが、できると思います:

var env_var_name = "SOME_CONFIG";

if (typeof(process.env[env_var_name]) == "undefined") {
    console.log("Env var not set");
} else {
    console.log("Env var set");
}

展開手順にある場合に備えて、文字列でenv var名を確認できるようにしたいと思います。

0
Display name

Ifステートメントで値を割り当てる場合、次のようにできます。

var thisIsSet = 'asddas';
var newVariable = thisIsSet ||'otherValue'
console.log(newVariable)

アスダスの結果

0
Evan Parsons

環境変数を確認するのに良い方法です

if (process.env.YOUR_ VARIABLE) {
    // If your variable is exist
}

それ以外の場合、複数の環境変数を確認したい場合は、このnode module でる。

node-envchecker

0
Max Chou