当前位置: 首页 > article >正文

在 Node.js 中使用 .env 文件

什么是 .env 文件?

文件.env是包含环境变量键值对的简单文本文件。此文件的内容不会被签入源代码管理,从而确保敏感数据的安全。
示例

PORT = 4000 
DATABASE_URL =mongodb://localhost: 27017 /mydb 
API_KEY =abcd1234 
NODE_ENV =development

在 Node.js 中设置 .env 文件

1.安装dotenv包

npm install dotenv

2. 创建.env文件

.env在项目根目录中创建一个文件并添加特定于环境的配置。

PORT = 5000 
JWT_SECRET =mysecretkey 
DB_USER =admin 
DB_PASS =password123

3. 在代码中加载环境变量

require('dotenv').config();

const express = require('express');
const app = express();

// Access environment variables
const PORT = process.env.PORT || 3000;
const SECRET = process.env.JWT_SECRET;

app.get('/', (req, res) => {
  res.send(`Server is running on port ${PORT}. Secret: ${SECRET}`);
});

app.listen(PORT, () => {
  console.log(`Server running at http://localhost:${PORT}`);
});

使用 .env 文件的最佳实践

1. 添加.env到.gitignore:

始终将您的.env文件添加到.gitignore以防止其被推送到公共存储库。

2. 使用默认值:

为关键环境变量提供后备值,以避免运行时错误。

const PORT = process.env.PORT || 3000;

3. 验证所需变量:

确保在运行应用程序之前定义了必要的变量。

if (!process.env.JWT_SECRET) {
  throw new Error('Missing JWT_SECRET environment variable');
}

4. 按环境分开配置:

为每个环境使用不同的.env文件(例如.env.development、.env.production),并根据当前环境加载它们。

5. 使用流程管理器进行生产:PM2或Docker

PM2或Docker这样的工具允许你直接注入环境变量

.env 文件的常见问题

  • 未加载变量:require('dotenv').config()确保在访问环境变量之前在代码顶部调用。
  • 放错.env文件:验证该.env文件是否位于项目的根目录中。
  • 语法错误:仅使用KEY=VALUE格式,符号周围没有空格=。

http://www.kler.cn/a/371510.html

相关文章:

  • MacOS/Macbook用户自定义字体安装教程
  • AXI接口的实现逻辑和底层原理,在FPGA中如何实现AXI接口,一篇文章足以搞明白!!!
  • R语言中的Lasso回归:全面指南与实战案例
  • 详细指南:解决Garmin 手表无法与电脑连接的问题
  • 【JVM第1课】Java 跨平台原理
  • 【数据仓库】
  • final关键字
  • Azure 将文本转换为语音
  • this指针使用演示(C++)
  • Jetson AGX Orin 实现相机雷达联合标定
  • 用sdcc给51单片机编译C程序
  • 绿色制造中的 FMEA 系统的应用_SunFMEA软件
  • iOS Swift5算法恢复——HMAC
  • 『大模型笔记』如何在无网路的情况下在Linux主机上安装NVIDIA Container Toolkit(nvidia-docker2)
  • Nginx、Lua 和 Redis 架构来实现 IP 黑名单
  • 大话网络协议:HTTPS协议和HTTP协议有何不同?为什么HTTPS更安全
  • 014 安装DHCP服务器
  • Halcon相机外参自理解
  • Golang的多版本管理
  • VScode编译C++的配置文件
  • 今日总结10.29
  • 【Mac】Homebrew
  • Soanrquber集成Gitlab 之 gitlab用户配置和身份验证
  • 深度学习:Overfitting 成因及解决策略
  • UDP组播测试
  • 【c语言】运算符汇总(万字解析)