https://d226lax1qjow5r.cloudfront.net/blog/blogposts/how-to-use-environment-variables-in-node-js/node-js-environmental-variables.png

Node.jsで環境変数を使用する方法

最終更新日 February 14, 2024

所要時間:1 分

この記事は2025年7月に更新されました。

はじめに

環境変数は、Node.js アプリケーションの構成とセキュリティにおいて重要な役割を果たします。環境変数によって、開発者は機密情報、構成設定、およびその他の変数をコードベースの外部に保存することができ、機密情報を公開することなく、異なるデプロイ環境(開発、テスト、本番)を管理しやすくなります。

このブログでは、Node.js での環境変数の使い方について、アプリケーションでの環境変数の設定、アクセス、管理などについて説明します。

環境変数を理解する

環境変数は、実行中のプロセスの動作に影響を与えることができる動的な値です。Node.js では、環境変数にアクセスするには process.envオブジェクトを使ってアクセスできます。これらの変数はアプリケーションの外部で設定され、実行時にアプリケーションによって読み込まれます。

環境変数の設定

環境変数を設定するには、オペレーティングシステムやデプロイメントプラットフォームに応じて、さまざまな方法を使用できます。

ウィンドウズ(コマンドプロンプト) set VAR_NAME=value

LinuxとmacOS(Bashシェル) export VAR_NAME=value

を使用している。.envファイル

多くのNode.jsプロジェクトでは、開発者は環境変数を保存・管理するために .envファイルを使用します。

プロジェクトのルートに .envという名前のファイルを作成し、変数を定義する:

DB_HOST=localhost
DB_PORT=5432
SECRET_KEY=mysecretkey

このファイル このファイルはこのファイルは、機密情報が常にローカル・コンピューターに残るように、バージョン管理システムにコミットしてはいけません。

追加 .envを追加する。 .gitignoreファイルに追加してください。以下に ファイルの例の例です。また dotenvを使うこともできる。 .envファイルから process.env.注意 dotenvパッケージを使うことができる)

Node.jsで環境変数にアクセスする

環境変数を設定したら、Node.jsアプリケーションで次のようにしてアクセスできる。 process.env.

const dbHost = process.env.DB_HOST;
const dbPort = process.env.DB_PORT;
const secretKey = process.env.SECRET_KEY;

console.log(`Database Host: ${dbHost}`);
console.log(`Database Port: ${dbPort}`);
console.log(`Secret Key: ${secretKey}`);

環境変数用モジュールの使用

よりよく整理するために、環境変数へのアクセスを一元化するモジュールの作成を検討する。という名前のファイルを作成する。 config.js:

module.exports = {
  dbHost: process.env.DB_HOST,
  dbPort: process.env.DB_PORT,
  secretKey: process.env.SECRET_KEY,
};

これで、これらの変数を簡単にインポートし、アプリケーションの他の部分で使用することができます:

const config = require('./config');

console.log(`Database Host: ${config.dbHost}`);
console.log(`Database Port: ${config.dbPort}`);
console.log(`Secret Key: ${config.secretKey}`);

デフォルト値の取り扱い

環境変数が設定されていない場合、デフォルト値を指定できることがある。そのためには ||演算子を使います:

const dbHost = process.env.DB_HOST || 'localhost';
const dbPort = process.env.DB_PORT || 5432;
const secretKey = process.env.SECRET_KEY || 'defaultsecret';

まとめ

Node.jsアプリケーションで環境変数を効果的に使用することは、セキュリティと設定可能性を維持するために非常に重要です。機密情報をコードベースの外に保ち、標準化されたアプローチを使用することで、異なるデプロイ環境を簡単に管理し、より安全なアプリケーションを確保することができます。

機密情報の取り扱いには十分注意し、特に本番環境では、環境変数のセキュリティを確保するためのベストプラクティスに従うことを忘れないでください。

ご質問がある場合は Vonage Developer Slackに参加するか Xに投稿してください。お読みいただきありがとうございました!

シェア:

https://a.storyblok.com/f/270183/400x400/7cdff37c0e/michael-crump.png
Michael Crumpデベロッパー・エクスペリエンス・マネージャー

マイケル・クランプはVonageのデベロッパーエクスペリエンスチームに所属し、コーダー、YouTuber、そして様々な.NETやクラウド/通信開発トピックについて頻繁に講演を行っています。彼は、開発者がそれぞれの利点を分かりやすく理解できるようにすることに情熱を注いでいます。