什么是 .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格式,符号周围没有空格=。