ホームページ > ウェブフロントエンド > jsチュートリアル > Node.jsで環境変数を設定する方法

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

Barbara Streisand
リリース: 2025-01-17 02:30:10
オリジナル
234 人が閲覧しました

How to set environment variables in Node.js

最新のソフトウェアには、柔軟性、拡張性、堅牢なセキュリティが求められます。 環境変数は、このバランスを達成する上で重要な役割を果たします。このガイドでは、セキュリティと保守性のベスト プラクティスに重点を置き、Node.js アプリケーション内で環境変数を設定および管理するためのさまざまな方法を説明します。 起動時の検証から機密データの漏洩防止まで、すべてをカバーします。 経験豊富な開発者でも、Node.js の初心者でも、この情報は安全で適応性のあるアプリケーションを構築するために不可欠です。

環境変数とは何ですか?

環境変数は、アプリケーションのコードベースの外部、通常は構成ファイルまたはシステム設定に保存されるキーと値のペアです。 API キーやデータベース認証情報などの機密データが保持されるため、ハードコーディングが防止され、セキュリティが向上します。 このアプローチにより、さまざまな環境 (開発、テスト、運用) にわたる管理が簡素化されます。

Node.js では、環境変数を使用すると、コードを変更せずに動的なアプリケーション構成が可能になります。同じコードベースが環境に応じて異なるデータベースまたは API と対話できるため、セキュリティが強化され、展開が簡素化され、適応性が高まります。

標準の JavaScript 変数とは異なり、環境変数はコード内で定義されません。これらは process.env 経由でアクセスされ、独立して存在するため、システム上の複数のアプリケーションに影響を与える可能性があります。

Node.js での環境変数へのアクセス

Node.js は、process.env オブジェクトを使用して環境変数にアクセスし、管理します。 変数の値を取得するには、process.env.VARIABLE_NAME を使用します。たとえば、process.env.API_KEYAPI_KEY に関連付けられた値を取得します。 コード内で環境変数を設定することは技術的には可能ですが、一般的には推奨されません。それは、そもそも環境変数を使用する利点を無効にします。

Express API で API_KEY を使用する方法は次のとおりです:

<code class="language-javascript">const express = require('express');
const app = express();

// Access API key from environment variables
const apiKey = process.env.API_KEY;

if (!apiKey) {
  console.error('Error: API key is not defined.');
  process.exit(1);
}

app.get('/', (req, res) => {
  res.send('API key successfully loaded.');
});

// Start the server
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
  console.log(`Server running on port ${PORT}`);
});</code>
ログイン後にコピー
ログイン後にコピー

Node.js での環境変数の設定

ここで、環境変数を設定するためのさまざまな方法を検討してみましょう:

  1. dotenv: の使用 dotenv パッケージは、環境変数をコードから分離することで環境変数の管理を簡素化します。 .env ファイルでキーと値のペアを定義します:
<code>PORT=3000
DB_USERNAME=dbuser</code>
ログイン後にコピー
ログイン後にコピー

次のようにインポートして使用します:

<code class="language-javascript">import * as dotenv from 'dotenv';
dotenv.config();

console.log(process.env.PORT); // Output: 3000
console.log(process.env.DB_USERNAME); // Output: dbuser</code>
ログイン後にコピー
ログイン後にコピー

.env を使用して、代替の dotenv.config({ path: './path/to/another.env' }) ファイル パスを指定できます。 開発には役立ちますが、運用には他の方法も検討してください。

  1. システムレベル設定: Unix 系システム (Linux、macOS) では、変数をシェル設定ファイルに追加します (例: ~/.bashrc~/.zshrc)。 これは、そのシェル セッション内のすべてのプロセスに影響します。 例:
<code class="language-javascript">const express = require('express');
const app = express();

// Access API key from environment variables
const apiKey = process.env.API_KEY;

if (!apiKey) {
  console.error('Error: API key is not defined.');
  process.exit(1);
}

app.get('/', (req, res) => {
  res.send('API key successfully loaded.');
});

// Start the server
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
  console.log(`Server running on port ${PORT}`);
});</code>
ログイン後にコピー
ログイン後にコピー

ターミナルを再起動するか、source ~/.bashrc を実行して変更を適用します。 システム全体のアクセス (システム プロセス) の場合は、/etc/environment.

を使用します。
  1. 起動スクリプト: 変数を設定して Node.js アプリケーションを実行するスクリプトを作成します (例: launch.sh):
<code>PORT=3000
DB_USERNAME=dbuser</code>
ログイン後にコピー
ログイン後にコピー

実行可能にして (chmod x launch.sh)、実行します (./launch.sh)。

  1. PM2 (プロセス マネージャー 2): PM2 では、アプリケーションの起動時に環境変数を設定できます:
<code class="language-javascript">import * as dotenv from 'dotenv';
dotenv.config();

console.log(process.env.PORT); // Output: 3000
console.log(process.env.DB_USERNAME); // Output: dbuser</code>
ログイン後にコピー
ログイン後にコピー

または、環境固有の構成には ecosystem.config.js ファイルを使用します。

  1. Docker: Docker で、Dockerfile:ENV を使用して
  2. に変数を設定します。
<code class="language-bash"># ~/.bashrc
export PORT=3000
export DB_USERNAME=myuser</code>
ログイン後にコピー

-e PORT=5173 を使用してコンテナを実行するとき、または docker-compose.yml ファイル内でコンテナを実行するときにデフォルトをオーバーライドします。

環境変数を使用するためのベスト プラクティス

安全で保守可能なアプリケーションを実現するには、次のベスト プラクティスに従ってください。

  • わかりやすい名前とドキュメント: 明確でわかりやすい名前を使用し、その目的をプロジェクトの README に文書化します。

  • 起動検証: アプリケーションの起動時に環境変数を検証して、正しく設定されていることを確認します。 欠落している変数を適切に処理します (デフォルト値またはエラー処理)。

  • .env ファイルの除外: .env..gitignore を使用して、バージョン管理 (Git) から

    ファイルを除外します。
  • KMS (キー管理システム) を検討します: セキュリティを強化するため、特に機密性の高いデータの場合は、KMS を使用して環境変数を暗号化して保存します。

  • デフォルト値: 変数が欠落している場合でもアプリケーションの機能を保証するために、重要ではない環境変数のデフォルト値を提供します。

  • フロントエンドで公開しない: 機密の環境変数をクライアント側のコードに直接公開しないでください。

事務員による環境変数の使用

Clerk SDK は、Clerk ダッシュボード内の構成とアプリケーションの関連付けに環境変数を利用します。 これにより、Express を使用した安全なバックエンド リクエストとフロントエンド検証が可能になります。 例:

<code class="language-bash">#!/bin/bash
export PORT=3000
export DB_USERNAME=myuser
node app.js</code>
ログイン後にコピー

結論

環境変数を安全に管理することが最も重要です。 これらのベスト プラクティスに従うことで、Node.js アプリケーションのセキュリティと保守性が大幅に強化され、運用環境へのデプロイメントの準備が整います。

以上がNode.jsで環境変数を設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート