JavaScript で環境変数を取得する

Subodh Poudel 2023年10月12日
  1. 環境変数の紹介
  2. env プロパティを使用して JavaScript で環境変数を取得する
  3. dotenv パッケージを使用して JavaScript で環境変数を取得する
JavaScript で環境変数を取得する

この記事では、JavaScript で環境変数を取得する方法をいくつか紹介します。

環境変数の紹介

環境変数を使用して、アプリケーションで使用できるさまざまな種類のデータを格納できます。 たとえば、データベース接続、ポート番号、パスワード、秘密鍵などです。

環境に応じて構成を作成する必要がある場合、環境変数の使用が活発になります。 開発環境と本番環境用に、アプリケーションにさまざまな構成を提供できます。

まず、シェルから環境変数を作成して取得する方法を見てみましょう。 export コマンドを使用して、変数または関数を子プロセスに渡すことができます。

以下のコマンドを使用して変数を定義できます。

$ export PORT=8080

次に、echo コマンドを使用して環境変数を取得できます。 環境変数を印刷するときは、環境変数の前に $ 記号を使用する必要があります。

$ echo $PORT

出力:

8080

次のセクションでは、JavaScript プログラムで環境変数にアクセスする方法を説明します。

env プロパティを使用して JavaScript で環境変数を取得する

JavaScript の process コア モジュールによって提供される env プロパティを使用して、環境変数を設定し、変数を取得できます。

env プロパティは、新しい環境変数を作成できます。 環境変数を設定したら、変数をコンソールに出力できます。

たとえば、次のコマンドを使用して、新しい npm パッケージを初期化します。

npm init -y

次に、package.json ファイルに次のプロパティを設定します。

"type": "module"

JavaScript では、process モジュールから env プロパティをインポートします。

次に、env プロパティを使用して環境変数を env.PORT として設定し、値を割り当てます。 その後、変数を出力します。

コード例:

import {env} from 'node:process';

env.PORT = 5000;
console.log(env.PORT);

出力:

5000

したがって、環境変数を作成し、JavaScript の process モジュールから env プロパティを使用してその値を取得できます。

dotenv パッケージを使用して JavaScript で環境変数を取得する

JavaScript アプリケーションを作成している場合は、環境変数を使用することをお勧めします。 前述のように、環境変数はさまざまな種類のデータを格納するために使用され、それらのデータはアプリケーションで使用できます。

このようなシナリオでは、dotenv パッケージを使用できます。 .env ファイルとアプリケーションに設定された環境変数を読み取ることができます。

たとえば、パッケージを初期化し、dotenv パッケージをインストールします。 同様に、環境変数を保存する .env ファイルを作成します。

npm init y
npm install dotenv
touch .env
touch app.js

.env ファイルで、パッケージ PORT の環境変数を作成し、次のように 8080 に設定します。

PORT=8080

JavaScript では、dotenv パッケージを要求し、config() メソッドを呼び出します。 これにより、process.env プロパティを使用して、.env ファイルに保存されている環境変数にアクセスできます。

次に、プロパティを使用して PORT にアクセスします。 最後に、式をコンソールに記録します。

コード例:

require('dotenv').config();
console.log(process.env.PORT)

出力:

8080

したがって、dotenv パッケージを使用して、JavaScript で環境変数を取得できます。

著者: Subodh Poudel
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn