在Node.js中使用.env文件管理环境变量的全过程

 更新时间:2025年09月24日 09:06:49   作者:鸠摩智首席音效师  
Node.js 应用程序通常依赖于环境变量来管理敏感信息或配置设置,.env 文件已经成为一种流行的本地管理这些变量的方法,本文将探讨 .env 文件为什么重要,以及如何在 Node.js 应用程序中有效的使用它,需要的朋友可以参考下

引言

Node.js 应用程序通常依赖于环境变量来管理敏感信息或配置设置。.env 文件已经成为一种流行的本地管理这些变量的方法,而无需在代码存储库中公开它们。本文将探讨 .env 文件为什么重要,以及如何在 Node.js 应用程序中有效的使用它。

为什么使用 .env 文件 ?

Security

在源代码中保留敏感信息 (如 API 密钥、数据库凭据) 可能会将它们暴露给意想不到的访问者。将此数据分离到特定于环境的文件中,您可以使用 .gitignore 轻松地将其排除在版本控制之外。

Configurability

随着应用程序的迭代增长,它们可能需要针对不同环境 (开发、测试、生产) 使用不同配置。使用 .env 文件有助于在配置和代码之间保持清晰的分离。

Portability

通过在代码中引用环境变量,您可以维护一个易于在不同环境之间移动的一致的代码库,只需要更新 .env 文件或给定部署的实际环境变量。

如何在 Node.js 中使用 .env 文件

1. Creating the .env file

在项目的根目录中创建一个 .env 文件,环境变量定义:key = value

DATABASE_URL=mongodb://localhost:27017/mydb
SECRET_KEY=my-secret-key
API_KEY=abcdef123456

2. Ignoring the .env file

为了防止你的 .env 文件提交到存储库,将其添加到 .gitignore 文件中。

# .gitignore
node_modules/
.env

3. Reading the .env file in your application

Node.js 应用程序访问 .env 文件中定义的变量,通常会使用 dotenv 软件包。

npm install dotenv

在主应用程序文件的顶部(通常是 index.js 或 server.js),导入并配置 dotenv

require('dotenv').config();

console.log(process.env.DATABASE_URL); // Outputs: mongodb://localhost:27017/mydb

通过调用 dotenv.config().env 文件中的所有变量加载到 process.env,它们在整个应用程序中都可以访问。

4. Using environment variables in the application

既然已经加载了环境变量,就可以在整个应用程序中使用它们了。例如,当连接到 MongoDB 实例时

const mongoose = require('mongoose');

mongoose.connect(process.env.DATABASE_URL, { useNewUrlParser: true, useUnifiedTopology: true });

或者在配置 API 时

const apiKey = process.env.API_KEY;

最佳实践

Never commit your .env file:

一定要确保 .env 文件被添加到你的 .gitignore 文件中。

Use descriptive variable names

清晰的名称使团队成员更容易理解每个变量的用途。

Provide a .env.example

与其共享 .env 文件,不如创建一个 .env.example 文件,包含所有键但不包含值,这可以作为团队成员或部署的模板。

Use fallbacks

有时,您可能希望在缺少环境变量的情况下提供一个默认值。

const apiKey = process.env.API_KEY || 'default-api-key';

Don’t over-rely on .env

对于较大的应用程序或微服务架构,请考虑使用专用的配置管理系统或服务。

到此这篇关于在Node.js中使用.env文件管理环境变量的全过程的文章就介绍到这了,更多相关Node .env文件管理环境变量内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 安装nvm实现切换node

    安装nvm实现切换node

    这篇文章主要介绍了安装nvm实现切换node的详细过程,本文给大家讲解的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-06-06
  • Nodejs中获取当前函数被调用的行数及文件名详解

    Nodejs中获取当前函数被调用的行数及文件名详解

    这篇文章主要给大家介绍了关于Nodejs中获取当前函数被调用的行数及文件名的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-12-12
  • Linux 安装nodejs环境及路径配置详细步骤

    Linux 安装nodejs环境及路径配置详细步骤

    大家都知道linux安装nodejs有两种比较常用的方法,一种解压即可用的方法操作比较简便,另一种方法通过编译来安装,本文重点给大家讲解第一种方法,感兴趣的朋友跟随小编一起看看吧
    2021-11-11
  • node.js实现pdf与图片互转代码示例

    node.js实现pdf与图片互转代码示例

    因工作需求,记录一次如何在Node中pdf与图片互转各种操作,这篇文章主要给大家介绍了关于node.js实现pdf与图片互转的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-04-04
  • 关于Node.js中Buffer的一些你可能不知道的用法

    关于Node.js中Buffer的一些你可能不知道的用法

    网上关于Node.js中Buffer用法的文章有很多,但是感觉还是不够详细,所以这篇文章主要介绍了关于Node.js中Buffer的一些你可能不知道的用法,文中介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-03-03
  • 详解Node.js 中使用 ECDSA 签名遇到的坑

    详解Node.js 中使用 ECDSA 签名遇到的坑

    这篇文章主要介绍了详解Node.js 中使用 ECDSA 签名遇到的坑,主要是使用 Node.js 的 Crypto 模块无法校验网络传输过来的签名结果,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • Nodejs初级阶段之express

    Nodejs初级阶段之express

    这篇文章主要介绍了Nodejs初级阶段之express的相关资料,需要的朋友可以参考下
    2015-11-11
  • nodejs 的 session 简单使用

    nodejs 的 session 简单使用

    session 不用多介绍,使一个http可以对应一个终端用户,需要的朋友可以参考下。
    2016-06-06
  • node运行服务无响应的解决

    node运行服务无响应的解决

    这篇文章主要介绍了node运行服务无响应的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • node.js中的fs.fchownSync方法使用说明

    node.js中的fs.fchownSync方法使用说明

    这篇文章主要介绍了node.js中的fs.fchownSync方法使用说明,本文介绍了fs.fchownSync方法说明、语法、接收参数、使用实例和实现源码,需要的朋友可以参考下
    2014-12-12

最新评论