JavaScript 逆引き集 | process.env(環境変数参照)

JavaScript JavaScript
スポンサーリンク

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("開発モードで動作中");
}
JavaScript
  • process.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);
JavaScript

APIキーを環境変数から読み込む

const apiKey = process.env.API_KEY;
if (!apiKey) {
  console.error("APIキーが設定されていません");
  process.exit(1);
}
console.log("APIキー:", apiKey);
JavaScript

dotenvライブラリで .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 アプリの基本が理解できます。

タイトルとURLをコピーしました