50% OFF Plus
--:--:--
¡Obtener!

Archivos .env y librería dotenv

Intermedio
Node
Node
Actualizado: 20/06/2025

¡Desbloquea el curso de Node completo!

IA
Ejercicios
Certificado
Entrar

Mira la lección en vídeo

Accede al vídeo completo de esta lección y a más contenido exclusivo con el Plan Plus.

Desbloquear Plan Plus

Instalación de dotenv y uso de archivos .env

La gestión de configuraciones sensibles como claves de API, credenciales de bases de datos o URLs de servicios externos requiere un enfoque que mantenga estos valores fuera del código fuente. Los archivos .env proporcionan una solución estándar para almacenar estas variables de entorno de forma segura y organizada.

Instalación de la librería dotenv

Para trabajar con archivos .env en Node.js, necesitamos instalar la librería dotenv, que se encarga de cargar las variables desde el archivo hacia process.env. Esta instalación se realiza como dependencia de desarrollo:

npm install dotenv

Una vez instalada, podemos verificar que aparece en nuestro package.json dentro de las dependencias:

{
  "dependencies": {
    "dotenv": "^16.4.5"
  }
}

Creación y estructura del archivo .env

El archivo .env debe crearse en la raíz del proyecto, al mismo nivel que package.json. Este archivo utiliza una sintaxis simple de clave-valor sin espacios alrededor del signo igual:

# Configuración de base de datos
DB_HOST=localhost
DB_PORT=5432
DB_NAME=mi_aplicacion
DB_USER=usuario_db
DB_PASSWORD=contraseña_secreta

# Configuración de API externa
API_KEY=abc123def456ghi789
API_URL=https://api.ejemplo.com/v1

# Configuración del servidor
PORT=3000
NODE_ENV=development

Es importante seguir las convenciones de nomenclatura: utilizar mayúsculas, separar palabras con guiones bajos y evitar espacios. Los comentarios se indican con el símbolo #.

Carga de variables con dotenv

Para que Node.js pueda acceder a las variables definidas en .env, debemos cargar dotenv al inicio de nuestra aplicación. Esto se hace importando y configurando la librería:

// Cargar dotenv al inicio del archivo principal
require('dotenv').config();

// Ahora podemos acceder a las variables de entorno
const dbHost = process.env.DB_HOST;
const dbPort = process.env.DB_PORT;
const apiKey = process.env.API_KEY;

console.log(`Conectando a la base de datos en ${dbHost}:${dbPort}`);
console.log(`Usando API key: ${apiKey ? '***configurada***' : 'no configurada'}`);

Uso práctico en una aplicación

Veamos un ejemplo completo de cómo integrar las variables de entorno en una aplicación Node.js que crea un servidor HTTP:

require('dotenv').config();
const http = require('http');

// Configuración desde variables de entorno
const PORT = process.env.PORT || 3000;
const NODE_ENV = process.env.NODE_ENV || 'development';
const API_URL = process.env.API_URL;

// Validar variables críticas
if (!API_URL) {
  console.error('Error: API_URL no está configurada en el archivo .env');
  process.exit(1);
}

const server = http.createServer((req, res) => {
  res.writeHead(200, { 'Content-Type': 'application/json' });
  
  const config = {
    environment: NODE_ENV,
    port: PORT,
    apiConfigured: !!API_URL
  };
  
  res.end(JSON.stringify(config, null, 2));
});

server.listen(PORT, () => {
  console.log(`Servidor ejecutándose en puerto ${PORT}`);
  console.log(`Entorno: ${NODE_ENV}`);
});

Configuración avanzada de dotenv

Guarda tu progreso

Inicia sesión para no perder tu progreso y accede a miles de tutoriales, ejercicios prácticos y nuestro asistente de IA.

Progreso guardado
Asistente IA
Ejercicios
Iniciar sesión gratis

Más de 25.000 desarrolladores ya confían en CertiDevs

La librería dotenv ofrece opciones de configuración adicionales para casos específicos. Podemos especificar la ruta del archivo o manejar errores de carga:

// Configuración con opciones personalizadas
require('dotenv').config({
  path: './config/.env', // Ruta personalizada
  debug: process.env.DEBUG // Mostrar información de depuración
});

// Verificar si la carga fue exitosa
const result = require('dotenv').config();

if (result.error) {
  console.error('Error cargando archivo .env:', result.error);
} else {
  console.log('Variables de entorno cargadas correctamente');
}

Seguridad y buenas prácticas

El archivo .env debe excluirse del control de versiones añadiéndolo al .gitignore:

# Variables de entorno
.env
.env.local
.env.*.local

# Logs
*.log

# Dependencias
node_modules/

Para facilitar la configuración del proyecto, es recomendable crear un archivo .env.example que muestre la estructura necesaria sin valores reales:

# Archivo .env.example
DB_HOST=localhost
DB_PORT=5432
DB_NAME=nombre_base_datos
DB_USER=usuario
DB_PASSWORD=contraseña

API_KEY=tu_clave_api_aqui
API_URL=https://api.ejemplo.com

PORT=3000
NODE_ENV=development

Este enfoque permite que otros desarrolladores del equipo sepan qué variables configurar sin exponer información sensible en el repositorio.

Aprendizajes de esta lección de Node

  • Comprender la importancia de gestionar configuraciones sensibles mediante variables de entorno.
  • Aprender a instalar y configurar la librería dotenv en un proyecto Node.js.
  • Conocer la estructura y convenciones para crear archivos .env.
  • Saber cómo cargar y utilizar variables de entorno en el código con dotenv.
  • Aplicar buenas prácticas de seguridad y manejo de archivos .env en proyectos colaborativos.

Completa este curso de Node y certifícate

Únete a nuestra plataforma de cursos de programación y accede a miles de tutoriales, ejercicios prácticos, proyectos reales y nuestro asistente de IA personalizado para acelerar tu aprendizaje.

Asistente IA

Resuelve dudas al instante

Ejercicios

Practica con proyectos reales

Certificados

Valida tus conocimientos

Más de 25.000 desarrolladores ya se han certificado con CertiDevs

⭐⭐⭐⭐⭐
4.9/5 valoración