Node.js Development

Administración de Variables de Entorno en Node.js

Spread the love

Tabla de Contenido

Introducción a las Variables de Entorno

Las variables de entorno son pares clave-valor dinámicos que proporcionan información de configuración a las aplicaciones. Se almacenan fuera del código de su aplicación, ofreciendo varias ventajas clave:

  • Seguridad: Los datos sensibles, como las claves de API y las contraseñas, nunca deben codificarse de forma rígida. Las variables de entorno proporcionan una forma segura de gestionar estos secretos.
  • Flexibilidad: Cambie fácilmente el comportamiento de la aplicación sin modificar la base de código. Esto es crucial para diferentes entornos de despliegue (desarrollo, ensayo, producción).
  • Portabilidad: Adapte su aplicación a varios entornos ajustando las variables de entorno sin cambios de código.

Esta guía muestra cómo acceder a las variables de entorno en JavaScript, centrándose en entornos Node.js.

Accediendo a Variables de Entorno con process.env

Node.js proporciona acceso integrado a las variables de entorno a través del objeto process.env. Este es el enfoque más común y recomendado para entornos de producción.


// Obtener una variable de entorno específica
const apiKey = process.env.API_KEY;

// Comprobar si existe una variable de entorno y proporcionar un valor predeterminado
const port = process.env.PORT || 3000; 

// Acceder a varias variables
const dbConfig = {
  host: process.env.DB_HOST,
  user: process.env.DB_USER,
  password: process.env.DB_PASSWORD,
  database: process.env.DB_NAME
};

//Ejemplo de manejo de variables de entorno faltantes con un mensaje de error más descriptivo
if (!dbConfig.host) {
    throw new Error("El host de la base de datos no está configurado. Por favor, configure la variable de entorno DB_HOST.");
}

console.log("Clave API:", apiKey);
console.log("Puerto:", port);
console.log("Configuración de la base de datos:", dbConfig);

Recuerde que la configuración de las variables de entorno es específica del sistema operativo. En Linux/macOS, use export (por ejemplo, export API_KEY="su_clave_api"); en Windows, use set.

Usando el paquete dotenv

Para el desarrollo, el paquete dotenv simplifica la gestión de las variables de entorno desde un archivo .env. Esto mantiene la información sensible fuera de su sistema de control de versiones.

  1. Instalación: npm install dotenv
  2. Archivo .env: Cree un archivo .env (¡añádalo a su .gitignore!) en el directorio raíz de su proyecto:

API_KEY=su_clave_api
DATABASE_URL=su_url_de_base_de_datos
PORT=3001
  1. Uso:

require('dotenv').config();

const apiKey = process.env.API_KEY;
const databaseUrl = process.env.DATABASE_URL;
const port = process.env.PORT;

console.log("Clave API:", apiKey);
console.log("URL de la base de datos:", databaseUrl);
console.log("Puerto:", port);

dotenv.config() carga las variables de .env en process.env. Siempre dé prioridad a las variables de entorno del sistema sobre .env para los despliegues de producción.

Mejores Prácticas de Seguridad

  • Nunca codifique información sensible de forma rígida. Siempre use variables de entorno.
  • Agregue .env a su .gitignore. Evite confirmaciones accidentales de datos sensibles.
  • Use una solución de gestión de secretos para entornos de producción para almacenar y acceder de forma segura a datos sensibles.
  • Valide y sanitize todas las variables de entorno antes de usarlas en su aplicación para evitar vulnerabilidades.
  • Revise y actualice regularmente sus prácticas de seguridad.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *