【保存版】Node.js環境変数の設定:.envファイル、dotenvモジュール、その他

2024-06-28

Node.jsで環境変数を設定する方法

コマンドラインから設定

export 変数名=値

上記のコマンドを実行することで、現在のシェル内で環境変数が設定されます。ただし、この方法は永続的な設定ではなく、シェルを閉じると環境変数は消去されます。

.envファイルとdotenvモジュールを使用

以下の手順で、.envファイルとdotenvモジュールを使用して、永続的に環境変数を設定することができます。

手順1:.envファイルを作成する

プロジェクトのルートディレクトリに.envという名前のファイルを作成し、設定したい環境変数とその値をキー-バリュー形式で記述します。

変数名=値

DB_HOST=localhost
DB_USER=username
DB_PASSWORD=password

手順2:dotenvモジュールをインストールする

以下のコマンドを実行して、dotenvモジュールをインストールします。

npm install dotenv

アプリケーションのJavaScriptファイルの先頭で、dotenvモジュールを読み込みます。

require('dotenv').config();

手順4:環境変数を使用する

process.envオブジェクトを使用して、設定した環境変数にアクセスすることができます。

const dbHost = process.env.DB_HOST;
const dbUser = process.env.DB_USER;
const dbPassword = process.env.DB_PASSWORD;

console.log(`DB_HOST: ${dbHost}`);
console.log(`DB_USER: ${dbUser}`);
console.log(`DB_PASSWORD: ${dbPassword}`);

補足

  • .envファイルは、通常Gitなどのバージョン管理システムで管理対象から除外します。
  • 複数の環境(開発環境、本番環境など)で異なる環境変数を使用する場合は、それぞれの環境用の.envファイルを用意することができます。
  • dotenvモジュールは、以下の機能を提供します。
    • .envファイルが存在しない場合や読み込みに失敗した場合にエラーを発生させる
    • .envファイル内のコメント行を無視する



    .envファイル

    DB_HOST=localhost
    DB_USER=username
    DB_PASSWORD=password
    PORT=3000
    

    app.js

    require('dotenv').config();
    
    const dbHost = process.env.DB_HOST;
    const dbUser = process.env.DB_USER;
    const dbPassword = process.env.DB_PASSWORD;
    const port = process.env.PORT;
    
    const express = require('express');
    const app = express();
    
    app.get('/', (req, res) => {
      console.log(`DB_HOST: ${dbHost}`);
      console.log(`DB_USER: ${dbUser}`);
      console.log(`DB_PASSWORD: ${dbPassword}`);
      res.send('Hello, World!');
    });
    
    app.listen(port, () => {
      console.log(`Server listening on port ${port}`);
    });
    

    実行

    以下のコマンドを実行して、サーバーを起動します。

    node app.js
    

    サーバーが起動すると、http://localhost:3000 にアクセスすることで、以下のメッセージが表示されます。

    Hello, World!
    

    このコードでは、以下のことが行われています。

    • .envファイルから環境変数を読み込みます。
    • 環境変数を使用して、データベース接続情報やサーバーのポート番号などの設定を取得します。
    • Expressフレームワークを使用して、Webサーバーを作成します。
    • / エンドポイントにアクセスしたときに、Hello, World! メッセージを返します。

    このサンプルコードを参考に、自分のアプリケーションで環境変数を設定してください。




    Node.jsで環境変数を設定するその他の方法

    process.envオブジェクトを使用する

    process.env.変数名 = 値;
    

    この方法を使用して、任意のタイミングで環境変数を設定することができます。ただし、この方法で設定した環境変数は、その後のプロセスでのみ有効となります。

    プロセス起動時に設定する

    以下のコマンドを使用して、プロセス起動時に環境変数を設定することができます。

    node --env 変数名=値 script.js
    

    この方法を使用して、スクリプトの実行中にのみ有効な環境変数を設定することができます。

    PM2などのプロセス管理ツールを使用すると、起動時に設定する環境変数を設定することができます。

    Cloud FoundryなどのPaaSを使用すると、プラットフォーム側で環境変数を設定することができます。

    • 永続的に環境変数を設定したい場合は、.envファイルとdotenvモジュールを使用するのが一般的です。
    • 任意のタイミングで環境変数を設定したい場合は、process.envオブジェクトを使用します。
    • プロセス起動時にのみ有効な環境変数を設定したい場合は、プロセス起動時に設定します。
    • PM2などのプロセス管理ツールを使用している場合は、そのツールで設定します。

      node.js environment-variables


      【保存版】Node.jsのログ出力:ロギングモジュール、環境変数、リダイレクトを使いこなす

      ログの確認方法ログを確認するには、いくつかの方法があります。コンソール: アプリケーションを実行すると、ログメッセージがコンソールに表示されます。ファイルへのリダイレクト: > 演算子を使用して、ログメッセージをファイルにリダイレクトできます。例えば、次のコマンドを実行すると、output...


      Node.jsでBase64エンコードされた文字列をバイナリに戻す方法

      Node. jsでは、Bufferクラスを使用してBase64エンコードされた文字列をバイナリに戻すことができます。Bufferクラスをインポートします。Base64エンコードされた文字列をデコードします。デコードされた文字列をバイナリデータとして使用します。...


      【初心者向け】ExpressでURLパラメータを取得して処理を行う方法

      URLの末尾に ? を付けて、パラメータ名と値のペアを key=value 形式で記述します。複数のパラメータを指定する場合は、& で区切ります。例:この場合、以下のコードでパラメータを取得できます。URLのパスにパラメータを埋め込みます。コロン(:) を使ってパラメータ名と値を区切ります。...


      【ReactJS】 useRef、onFocus/onBlur、カスタムフック、ライブラリ… それぞれの状況に合った最適な方法で入力要素のフォーカス状態を検出・制御しよう

      useRefフックを使用して、入力要素への参照を取得し、document. activeElementと比較することで、フォーカス状態を確認できます。onFocusとonBlurイベントを使用して、入力要素がフォーカスされたか失われたかを検出できます。...


      TypeScriptにおけるモジュール読み込み:詳細比較と適切な使い分け

      TypeScriptでは、モジュールの読み込みに2つの主要な方法があります。それは、「import/as」と「import/require」です。それぞれ異なる機能と利点があり、状況に応じて使い分けることが重要です。本記事では、「JavaScript」、「Node...


      SQL SQL SQL SQL Amazon で見る



      Node.jsでdotenvモジュールを使って環境変数を設定する方法

      Node. jsで環境変数を設定するには、いくつかの方法があります。コマンドラインから設定以下のコマンドで環境変数を設定できます。例:.envファイルを使うプロジェクトのルートディレクトリに . env という名前のファイルを作成し、環境変数を設定できます。