Express で環境変数を利用するには?
dotenvというライブラリを使って「 .env 」ファイルを読み込むことができます。
Node.js v20.6.0 からは、アプリの起動時にフラグを設定すればライブラリを使わずに「 .env 」ファイルを読み込むことができます。
本番環境での .env ファイルの利用
本番環境では「 OSやプロセス管理ツールの環境変数設定機能 」を使う方が、セキュアで保守性が高いです。
.envは、開発環境のみで利用するのが無難です。
dotenv
インストール
npm install dotenv
アプリのルートディレクトリに「 .env 」ファイルを作成し、以下のように変更します。
.env
HELLO = "hello, world"
環境変数を利用したいファイルでファイルを読み込み利用します。
main.js
require('dotenv').config();
console.log(process.env.HELLO);
v20.6.0以降 の場合
アプリを起動する場合に、「 --env-file=.env 」のフラグを利用すればライブラリを使わずに利用できます。
node --env-file=.env main.js
express-generator で作成した場合、「 package.json 」に以下のように記述することで、「 npm start 」のコマンドでフラグを実行できます。
package.json
~ 中略 ~
"scripts": {
"start": "node --env-file=.env ./bin/www"
},
~ 中略 ~
package.json
「 package.json 」を以下のように編集します。
Windowsのコマンドプロンプトで「 npm start 」とすると production モードで起動することができます。
「 npm test 」で development モードで起動することができます。
~ 中略 ~
"scripts": {
"test": "node ./bin/www",
"start": "set NODE_ENV=production&&node ./bin/www"
},
~ 中略 ~
Windowsで環境変数を設定するには?
コマンドプロンプトで設定するには、以下のようにします。PowrShell では、設定できません。
コマンドプロンプト
set NODE_ENV=production
Expressアプリ上でモードを確認するには?
起動しているモードを確認するには、以下のようにします。
console.log(app.get('env'))