Bootstrap

在 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格式,符号周围没有空格=。
;