Конфигурация приложений 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 делает код чище и масштабируемее.

Рекомендаций