O que é a biblioteca config?
A biblioteca config é um módulo popular para Node.js, projetado para gerenciar configurações de aplicações. Ela permite armazenar configurações em arquivos separados (JSON, YAML, JS) e carregá-los automaticamente dependendo do ambiente (development, production, staging). Isso elimina a necessidade de codificar parâmetros fixos, como chaves de API, portas do servidor ou strings de conexão com o banco de dados.
Para que serve?
Em projetos reais, a configuração muda frequentemente: localmente você usa uma URL de banco de dados, no servidor usa outra. Sem o módulo config, você teria que alterar variáveis manualmente ou usar construções complexas com process.env. A biblioteca simplifica esse processo: ela seleciona automaticamente o arquivo com base na variável de ambiente NODE_ENV (por exemplo, development.json ou production.json).
Como instalar?
Instale o módulo via npm:
npm install configPrincipais funcionalidades
- Detecção automática de ambiente: por padrão, procura o arquivo
default.jsone depois{NODE_ENV}.json. - Suporte a formatos: JSON, YAML, JS, TOML.
- Aninhamento profundo: acesso a campos aninhados usando ponto (
config.get('database.host')). - Segurança: é possível ocultar dados sensíveis (senhas) através de variáveis de ambiente.
Exemplo de código em JavaScript (Node.js)
Crie a estrutura de pastas:
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');
// Obtém a porta do servidor
const port = config.get('server.port');
// Obtém o host do banco de dados
const dbHost = config.get('database.host');
console.log(`Server running on port ${port}`);
console.log(`Database host: ${dbHost}`);
// Inicia o servidor
const http = require('http');
http.createServer((req, res) => {
res.end('Hello World');
}).listen(port);Execute com diferentes ambientes:
# Padrão (development)
node app.js
# Server running on port 3000
# Production
NODE_ENV=production node app.js
# Server running on port 80Quando usar?
A biblioteca config é ideal para aplicações Node.js de médio e grande porte, onde é necessário separar as configurações por ambiente. Ela é indispensável na implantação em vários servidores, em arquitetura de microsserviços e ao trabalhar com dados confidenciais (através de variáveis de ambiente). Para projetos pequenos ou scripts, pode-se usar um simples process.env, mas o config torna o código mais limpo e escalável.