ホームページ >ウェブフロントエンド >jsチュートリアル >dotenvを使用したnode.jsの環境変数の管理

dotenvを使用したnode.jsの環境変数の管理

DDD
DDDオリジナル
2025-01-30 12:30:10667ブラウズ

Managing Environment Variables in Node.js with dotenv

node.jsでアプリケーションを開発する場合、機密性の値を安全に管理することが重要です。これらの値は、APIキー、データベース資格情報、サーバーポートなど、環境変数に保存されることがよくあります。 DotenVパッケージを使用すると、これらの変数をA.ENVファイルからロードして、アプリケーション内でアクセスしながらソースコードからそれらを締め出すことができます。 この記事では、dotenVを使用して環境変数を効率的に管理し、ユーティリティ関数を作成して、必要な変数が常に利用可能であることを確認する方法を調べます。

なぜ環境変数を使用するのですか?


環境変数を使用すると、いくつかの利点があります:

セキュリティ:
    codebaseから機密情報を保持します。
  • 設定可能性:
  • コードを変更せずに設定を簡単に変更します
  • 環境固有の設定:開発環境と生産環境に異なる値を使用します。
  • node.jsプロジェクトでdotenvをセットアップします
  • ステップ1:Dotenvをインストールします

dotenvを使用する前に、プロジェクトにインストールする必要があります。

ステップ2:.ENVファイルを作成します

プロジェクトのルートで、.ENVファイルを作成し、環境変数を定義します。

npm install dotenv

メモ:

.envファイルをリポジトリにコミットしないでください! .gitignoreファイルに常に.envを追加してください。


node.jsの環境変数の読み込み
PORT=5000
FRONTEND_URL=http://localhost:3000
NODE_ENV=development
DB_CONNECT=mongodb://localhost:27017/mydatabase
ACCESS_TOKEN=your-secret-access-token

dotenvを使用して、node.jsアプリケーションに環境変数をロードできます。次のコードでは、これを行う方法を示しています ステップ3:構成ファイルを作成します


コードの理解

環境変数の負荷:

import { config } from "dotenv";

config({ path: "../../.env" });

// Define all required environment variables
const envVars = {
  port: process.env.PORT || 5000,
  frontendUrl: process.env.FRONTEND_URL,
  nodeEnv: process.env.NODE_ENV as "development" | "production",
  dbConnect: process.env.DB_CONNECT,
  accessToken: process.env.ACCESS_TOKEN,
};

/**
 * This function returns an environment variable and throws an error if unavailable.
 * @param varName - The key of the environment variable.
 * @returns The value of the specified environment variable.
 */
export default function getEnv(varName: keyof typeof envVars): string {
  if (typeof envVars[varName] === "undefined") {
    console.error(`'${varName}' is not available`);
    process.exit(1);
  } else {
    return envVars[varName] as string;
  }
}

これはdotenvをインポートし、.envファイルをprocess.envにロードします。

予想される環境変数を定義します。
予想される環境変数のセットを定義し、欠落している場合にポートにデフォルト値を提供します。
import { config } from "dotenv";
config({ path: "../../.env" });

環境変数を安全に取得する関数を作成します。

  1. この関数により、環境変数が欠落している場合、アプリケーションが静かに故障するのではなくエラーが発生し、終了することが保証されます。
const envVars = {
  port: process.env.PORT || 5000,
  frontendUrl: process.env.FRONTEND_URL,
  nodeEnv: process.env.NODE_ENV as "development" | "production",
  dbConnect: process.env.DB_CONNECT,
  accessToken: process.env.ACCESS_TOKEN,
};
getENV関数を使用します

今、プロジェクトに環境変数が必要なときはいつでも、このように安全に取得できます。
  1. 変数が欠落している場合、アプリケーションはエラーを終了してログを記録し、構成が欠落しているアプリを実行しないようにします。

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

    1. アプリケーションにハードコードの秘密はありません。常に環境変数を使用してください .env.developmentや.env.productionなどの環境固有の.envファイルを使用します
    2. 異なるオペレーティングシステム全体のスクリプトで環境変数を設定するために、Cross-ENVのようなライブラリを使用してください。
    3. 結論
    4. 環境変数の管理はアプリケーション開発の重要な部分であり、DotenVパッケージにより、それらを安全にロードすることができます。 GETENV関数を使用して構造化されたアプローチを作成することにより、必要なすべての変数が適切にロードされていることを確認でき、構成が欠落しているランタイムエラーを防ぎます。
    ベストプラクティスに従うことにより、node.jsアプリケーションのセキュリティ、保守性、柔軟性を高めることができます。

    完全なコードの例

以上がdotenvを使用したnode.jsの環境変数の管理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。