首页 > web前端 > js教程 > 使用dotenv管理Node.js中的环境变量

使用dotenv管理Node.js中的环境变量

DDD
发布: 2025-01-30 12:30:10
原创
615 人浏览过

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中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板