Node.js アプリケーションで使用している API キーがあります。現在、このキーはテキスト ファイルに保存されており、アプリケーションの起動時にグローバル変数に配置されます。
つまり、基本的には次のようになります。
var key = getKey();
useKeyGetData(key);
このグローバル変数は好きではありませんし、ファイル間で渡すのも面倒です。必要なときに必要な場所でキーを取得するためのより良い方法はありますか? そうするための標準はありますか?
ベストアンサー1
あなたが行っていることの従来の代替手段は、特にAPIキーに関連する場合は、環境変数これはオペレーティング システム レベルの構成機能です。各プロセスには独自の環境変数のセットがあり、通常は親プロセスから継承されます。慣例により、環境変数の名前は大文字になります。
node.jsでは、環境変数にアクセスできます。process.env
たとえば、次のようなアプリケーションを実行するとします。
$ MY_VARIABLE=test node app.js
MY_VARIABLE
環境変数の値には、次の方法でアクセスできます。
process.env.MY_VARIABLE
しかし、プログラムを起動するたびに環境変数を渡し続けるのは面倒です。そのため、次のようなパッケージがあります。ドテンヴこれにより、環境変数をテキスト ファイルに保存できるようになります。
具体的には、 というファイルがあり.env
、その中に次のような内容が含まれます。
MY_VARIABLE=test
OTHER_VARIABLE=foo
の始めにapp.js
、次の操作を行います。
require('dotenv').config();
これにより、ファイルから環境変数の値が読み取られます.env
。その後、他の環境変数にアクセスするのと同じようにアクセスできます。
console.log("MY_VARIABLE: " + process.env.MY_VARIABLE);
console.log("OTHER_VARIABLE: " + process.env.OTHER_VARIABLE);
これで、呼び出し時に環境変数をアプリケーションに明示的に渡す必要がなくなり、通常どおりに実行できるようになります。
$ node app.js
もし、あんたがする明示的に渡すと、ファイルで指定した値が上書きされます.env
。
$ MY_VARIABLE=bar node app.js
これで、MY_VARIABLE
環境変数の値は"bar"
ではなく になります"testing"
。 は明示的に渡されないため、ファイルで指定されたOTHER_VARIABLE
の値が保持されます。"foo"
.env