JavaScript 应用配置:config 库

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

什么是 config 库?

config 库是 Node.js 中一个流行的模块,用于管理应用程序配置。它允许将设置存储在单独的文件中(JSON、YAML、JS),并根据环境(development、production、staging)自动加载它们。这避免了硬编码参数(如 API 密钥、服务器端口或数据库连接字符串)的需要。

为什么需要它?

在实际项目中,配置经常变化:本地使用一个数据库 URL,服务器上使用另一个。如果没有 config 模块,你将不得不手动更改变量,或使用复杂的 process.env 结构。该库简化了这一过程:它会根据环境变量 NODE_ENV(例如 development.json 或 production.json)自动选择文件。

如何安装?

通过 npm 安装模块:

npm install config

主要功能

  • 自动环境检测:默认查找 default.json 文件,然后是 {NODE_ENV}.json。
  • 支持多种格式:JSON、YAML、JS、TOML。
  • 深层嵌套:通过点号访问嵌套字段(config.get('database.host'))。
  • 安全性:可以通过环境变量隐藏敏感数据(如密码)。

JavaScript (Node.js) 代码示例

创建文件夹结构:

project/
├── config/
│ ├── default.json
│ └── production.json
├── app.js
└── package.json

config/default.json:

{
"server": {
"port": 3000
},
"database": {
"host": "localhost",
"port": 5432
}
}

config/production.json:

{
"server": {
"port": 80
},
"database": {
"host": "prod-db.example.com"
}
}

app.js:

const config = require('config');

// 获取服务器端口
const port = config.get('server.port');

// 获取数据库主机
const dbHost = config.get('database.host');

console.log(`Server running on port ${port}`);
console.log(`Database host: ${dbHost}`);

// 启动服务器
const http = require('http');
http.createServer((req, res) => {
res.end('Hello World');
}).listen(port);

使用不同环境运行:

# 默认 (development)
node app.js
# Server running on port 3000

# Production
NODE_ENV=production node app.js
# Server running on port 80

何时使用?

config 库非常适合中大型 Node.js 应用程序,这些应用需要按环境分离设置。在部署到多台服务器、微服务架构以及处理机密数据(通过环境变量)时,它是不可或缺的。对于小型项目或脚本,可以使用简单的 process.env,但 config 使代码更简洁、更具可扩展性。

推荐