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

在 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.lryc.cn/news/475246.html

相关文章:

  • CesiumJS 案例 P19:添加矩形、监听鼠标左击、监听鼠标右击、监听鼠标移动
  • 路测毫米波雷达标定和目标跟踪
  • 【sqlmap使用手册-持续更新中】
  • 面向对象三大特征之一:封 装
  • qt QMenuBar详解
  • ESP32的下的蓝牙应用笔记(1)——Beacon蓝牙信标
  • 控制台安全内部:创新如何塑造未来的硬件保护
  • 如何选择适合自己的 Python IDE
  • Matlab车牌识别课程设计报告模板(附源代码)
  • kubesphere jenkins自动重定向 http://ks-apiserver:30880/oauth/authorize
  • Vue3访问页面时自动获取数据
  • go语言回调函数的使用
  • 区块链学习笔记(一)
  • 解决QT打包发布App Store时(90238)错误
  • 使用Vite构建现代化前端应用
  • PyQt入门指南三十八 QWizard向导组件
  • 【数学二】线性代数-矩阵-矩阵的概念及运算
  • 近期学习前端的心得
  • qt QMenu详解
  • HTMLCSS:旋转的动态卡片
  • 通过自然语言表达你的想法。GitHub Spark让任何人都能使用人工智能,为自己创建软件...
  • c++的list类
  • uniapp数据缓存
  • HarmonyOS-权限管理
  • Github 2024-11-02 Rust开源项目日报 Top10
  • 修改HarmonyOS鸿蒙图标和名字,打包后安装到真机,应用图标丢失变成透明,修改名字也不生效,还是默认的labeL解决方案教程
  • unreal engine5动画重定向
  • 蓝桥杯练习笔记(二十-日期问题)
  • jenkins 构建报错 mvn: command not found
  • Vue computed watch