首頁 > web前端 > js教程 > 使用dotenv管理Node.js中的環境變量

使用dotenv管理Node.js中的環境變量

DDD
發布: 2025-01-30 12:30:10
原創
667 人瀏覽過

Managing Environment Variables in Node.js with dotenv

>在Node.js中開發應用程序時,安全管理敏感的配置值是至關重要的。這些值(例如API鍵,數據庫憑據和服務器端口)通常存儲在環境變量中。 DOTENV軟件包允許我們從.env文件加載這些變量,使它們脫離我們的源代碼,同時仍可以在我們的應用程序中訪問。

>

>在本文中,我們將探討如何使用dotenv有效地管理環境變量並創建一個實用程序函數以確保始終可用。


為什麼使用環境變量?

使用環境變量提供了幾個好處:

  • >安全性:>將敏感信息留在代碼庫中。 >
  • 可配置性:
  • 輕鬆更改設置而無需修改代碼。 特定環境特定設置:
  • 在開發和生產環境中使用不同的值。
  • >
  • 在node.js項目中設置dotenv

步驟1:安裝dotenv

在使用dotenv之前,我們需要將其安裝在我們的項目中:>

步驟2:創建.ENV文件

在項目的根源中,創建.ENV文件並定義您的環境變量:
npm install dotenv
登入後複製

>
注意:

>切勿將.ENV文件提交為存儲庫!始終將.env添加到您的.gitignore文件中。
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;
  }
}
登入後複製

>加載環境變量:

  1. 這將導入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,
};
登入後複製

此功能可確保如果丟失了環境變量,則應用程序會丟棄錯誤並終止而不是默默失敗。
  1. 使用getEnv函數
現在,每當我們需要項目中的環境變量時,我們都可以安全地檢索它:
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;
  }
}
登入後複製


如果丟失了該變量,則應用程序將退出並記錄錯誤,確保我們永遠不會運行具有丟失配置的應用程序。


管理環境變量的最佳實踐

  1. >在您的應用程序中從不進行硬碼秘密。始終使用環境變量。
  2. >使用.env.example文件為所需變量提供模板。 >
  3. 使用特定環境的.env文件,例如.env.development和.env.production。
  4. 使用諸如Cross-env之類的庫來在不同操作系統的腳本中設置環境變量。
  5. 結論

管理環境變量是應用程序開發的重要組成部分,Dotenv軟件包使其易於安全加載。通過使用getEnv函數創建結構化方法,我們可以確保正確加載所有必需的變量,從而防止缺少配置引起的運行時錯誤。

通過遵循最佳實踐,我們可以增強node.js應用程序的安全性,可維護性和靈活性。 >

完整的代碼示例


以上是使用dotenv管理Node.js中的環境變量的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板