process.env(環境変数参照) — process.env.NODE_ENV(Node.js)
Node.js では 環境変数 を process.env 経由で参照できます。
環境変数は「アプリの動作モード」や「秘密情報(APIキーなど)」を外部から渡すために使われます。コードに直接書かず、実行環境ごとに切り替えられるのがメリットです。
基本のコード例
// 環境変数 NODE_ENV を参照
console.log("現在の環境:", process.env.NODE_ENV);
// 例: "development" / "production" / "test"
if (process.env.NODE_ENV === "production") {
console.log("本番モードで動作中");
} else {
console.log("開発モードで動作中");
}
JavaScriptprocess.envはオブジェクトで、環境変数をキーとして参照できる。NODE_ENVは慣習的に「環境モード」を表す変数。
環境変数の設定方法
Linux / macOS
NODE_ENV=production node app.js
Windows(PowerShell)
$env:NODE_ENV="production"
node app.js
Windows(cmd)
set NODE_ENV=production
node app.js
よく使うテンプレート集
開発と本番で設定を切り替える
const config = {
db: process.env.NODE_ENV === "production"
? "mysql://user:pass@prod-db"
: "sqlite://dev.db"
};
console.log("DB接続先:", config.db);
JavaScriptAPIキーを環境変数から読み込む
const apiKey = process.env.API_KEY;
if (!apiKey) {
console.error("APIキーが設定されていません");
process.exit(1);
}
console.log("APIキー:", apiKey);
JavaScriptdotenvライブラリで .env ファイルを使う
// npm install dotenv
require('dotenv').config();
console.log("環境:", process.env.NODE_ENV);
console.log("秘密キー:", process.env.SECRET_KEY);
JavaScript.env ファイル例:
NODE_ENV=development
SECRET_KEY=abc123
例題: 簡易サーバーのモード切り替え
const http = require('http');
const port = process.env.NODE_ENV === "production" ? 80 : 3000;
http.createServer((req, res) => {
res.end(`Hello! 現在の環境: ${process.env.NODE_ENV}`);
}).listen(port, () => {
console.log(`サーバー起動: http://localhost:${port}`);
});
JavaScript- 効果:
NODE_ENV=production node server.jsでポート80、本番モード。 - 開発時:
node server.jsでポート3000、開発モード。
実務でのコツ
- 秘密情報は環境変数に: APIキーやパスワードをコードに直書きせず、環境変数で管理。
- NODE_ENVの慣習:
"development","production","test"がよく使われる。 - dotenvで便利に:
.envファイルを使うと環境変数を簡単に管理できる。 - デフォルト値:
process.env.X || "default"のようにして未設定時の値を決めておく。
ありがちなハマりポイントと対策
- 環境変数が未設定:
- 対策: デフォルト値を用意する。
- WindowsとLinuxで設定方法が違う:
- 対策: cross-env(npmパッケージ)を使うと両方で同じ書き方ができる。
- 環境変数は文字列:
- 対策: 数値や真偽値にしたい場合は
Number()やJSON.parse()で変換。
- 対策: 数値や真偽値にしたい場合は
練習問題(環境ごとにメッセージを変える)
const env = process.env.NODE_ENV || "development";
switch (env) {
case "production":
console.log("本番環境です。最適化された設定を使います。");
break;
case "test":
console.log("テスト環境です。自動テストを実行します。");
break;
default:
console.log("開発環境です。デバッグ情報を表示します。");
}
JavaScript- 効果: 環境変数に応じてメッセージが切り替わる。
直感的な指針
process.env= Node.js で環境変数を参照する窓口。NODE_ENV= 環境モードを表す慣習的な変数。- 秘密情報や設定は環境変数に置く。
- 開発・本番・テストで切り替えるのが基本パターン。
これを覚えれば「環境ごとに設定を変える」「秘密情報を安全に管理する」といった Node.js アプリの基本が理解できます。
