Configuración de aplicaciones JavaScript: biblioteca config

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Qué es la biblioteca config?

La biblioteca config es un módulo popular para Node.js, diseñado para gestionar las configuraciones de las aplicaciones. Permite almacenar ajustes en archivos separados (JSON, YAML, JS) y cargarlos automáticamente según el entorno (development, production, staging). Esto evita la necesidad de codificar parámetros directamente, como claves de API, puertos del servidor o cadenas de conexión a la base de datos.

¿Para qué sirve?

En proyectos reales, la configuración a menudo cambia: localmente usas una URL de base de datos, en el servidor otra. Sin el módulo config, tendrías que cambiar las variables manualmente o usar construcciones complejas con process.env. La biblioteca simplifica este proceso: selecciona automáticamente el archivo basándose en la variable de entorno NODE_ENV (por ejemplo, development.json o production.json).

¿Cómo instalarlo?

Instala el módulo a través de npm:

npm install config

Funciones principales

  • Detección automática del entorno: por defecto busca el archivo default.json, luego {NODE_ENV}.json.
  • Soporte de formatos: JSON, YAML, JS, TOML.
  • Anidamiento profundo: acceso a campos anidados mediante punto (config.get('database.host')).
  • Seguridad: se pueden ocultar datos sensibles (contraseñas) a través de variables de entorno.

Ejemplo de código en JavaScript (Node.js)

Crea la estructura de carpetas:

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');

// Obtenemos el puerto del servidor
const port = config.get('server.port');

// Obtenemos el host de la base de datos
const dbHost = config.get('database.host');

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

// Inicio del servidor
const http = require('http');
http.createServer((req, res) => {
res.end('Hello World');
}).listen(port);

Ejecuta con diferentes entornos:

# Por defecto (development)
node app.js
# Server running on port 3000

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

¿Cuándo usarla?

La biblioteca config es ideal para aplicaciones Node.js medianas y grandes, donde se requiere separar la configuración por entornos. Es indispensable al desplegar en múltiples servidores, en arquitecturas de microservicios y al trabajar con datos confidenciales (a través de variables de entorno). Para proyectos pequeños o scripts, se puede usar simplemente process.env, pero config hace que el código sea más limpio y escalable.

Recommendations