Что такое библиотека 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.jsonconfig/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 делает код чище и масштабируемее.