Node.js から環境変数を読み取る方法
Node.js の process コアモジュールは、プロセスが開始された時点に設定されていたすべての環境変数を保持する env プロパティを提供します。
以下のコードは app.js を実行し、USER_ID と USER_KEY を設定します。
USER_ID=239482 USER_KEY=foobar node app.js
これにより、ユーザー USER_ID は 239482、USER_KEY は foobar として渡されます。これはテストには適していますが、本番環境では、変数をエクスポートするために何らかの Bash スクリプトを設定することになるでしょう。
注意:
processをインポートする必要はありません。これは Node.js のグローバルオブジェクトです。
これは、上記のコードで設定した USER_ID と USER_KEY の環境変数にアクセスする例です。
.(..); // "239482"
.(..); // "foobar"
同様の方法で、設定した任意のカスタム環境変数にアクセスできます。
Node.js 20 では、.env ファイルのサポートが実験的に導入されました。
これにより、Node.js アプリケーションを実行する際に --env-file フラグを使用して環境ファイルを指定できます。以下は .env ファイルの例と、process.env を使用してその変数にアクセスする方法です。
# .env file
PORT=3000
JS ファイル内
.(..); // "3000"
.env ファイルに設定された環境変数で app.js ファイルを実行します。
node --env-file=.env app.js
このコマンドは .env ファイルからすべての環境変数を読み込み、アプリケーションが process.env で利用できるようにします。
また、複数の --env-file 引数を渡すこともできます。後続のファイルは、前のファイルで定義された既存の変数を上書きします。
node --env-file=.env --env-file=.development.env app.js
注意:同じ変数が環境とファイルの両方で定義されている場合、環境からの値が優先されます。
.env ファイルから任意で読み込みたい場合は、--env-file-if-exists フラグを使用して、ファイルが見つからない場合にエラーをスローしないようにすることができます。
node --env-file-if-exists=.env app.js