Configuración y uso de variables de entorno en Node.js

Clase 3 de 30Curso de Backend con ExpressJS

Resumen

Las variables de entorno son fundamentales en el desarrollo de aplicaciones Node.js, permitiendo configurar diferentes aspectos de nuestra aplicación según el entorno en que se ejecute. En este artículo, exploraremos cómo implementar y gestionar variables de entorno en una aplicación Node.js, así como algunas buenas prácticas para optimizar nuestro flujo de trabajo de desarrollo.

¿Cómo configurar variables de entorno en Node.js?

Cuando desarrollamos aplicaciones en Node.js, es común necesitar diferentes configuraciones según el entorno (desarrollo, pruebas, producción). Las variables de entorno nos permiten manejar estas configuraciones de manera eficiente.

En nuestro ejemplo, estamos configurando el puerto en el que se ejecutará nuestra aplicación:

require('dotenv').config();

const port = process.env.PORT || 3000;

console.log(port);

// Resto del código de la aplicación

Es importante destacar que algunas variables tendrán valores por defecto (como en el caso del puerto que usa 3000 si no se especifica otro), mientras que otras no deberían tener valores predeterminados para no perder su propósito.

Instalación y uso de dotenv

Para que nuestra aplicación pueda leer las variables definidas en un archivo .env, necesitamos instalar el paquete dotenv:

npm install dotenv

Una vez instalado, debemos importarlo y configurarlo al inicio de nuestra aplicación:

require('dotenv').config();

Este paquete carga automáticamente las variables definidas en el archivo .env y las hace disponibles a través del objeto process.env.

¿Cómo optimizar el flujo de trabajo en desarrollo?

Cuando trabajamos en desarrollo, es común realizar cambios frecuentes en nuestro código. Para facilitar este proceso, podemos configurar scripts en nuestro archivo package.json.

Configuración de scripts personalizados

{
  "scripts": {
    "dev": "node --watch app.js",
    "start": "node app.js"
  }
}

Esta configuración nos permite:

  • Ejecutar la aplicación en modo desarrollo con cambios en tiempo real: npm run dev
  • Iniciar la aplicación en modo producción: npm start

Estos scripts simplifican los comandos repetitivos y estandarizan la forma de ejecutar la aplicación en diferentes entornos.

Consideraciones importantes sobre las variables de entorno

Es fundamental entender que:

  1. Los cambios en las variables de entorno requieren reiniciar la aplicación - Node.js no detecta automáticamente estos cambios mientras se ejecuta.
  2. Para ver los cambios en las variables de entorno, debemos:
    • Detener la ejecución actual
    • Realizar los cambios necesarios
    • Reiniciar la aplicación

¿Qué mejoras podemos implementar en nuestra aplicación?

Para mejorar la experiencia de desarrollo, podemos agregar mensajes informativos que faciliten el acceso a nuestra aplicación:

app.listen(port, () => {
  console.log(`Servidor corriendo en http://localhost:${port}`);
});

Este mensaje en la consola nos permite:

  • Confirmar que la aplicación se está ejecutando correctamente
  • Acceder rápidamente a la aplicación haciendo clic en el enlace (en terminales modernas)
  • Verificar en qué puerto está escuchando nuestra aplicación

Estas pequeñas mejoras hacen que el proceso de desarrollo sea más fluido y menos propenso a errores.

Las variables de entorno son una herramienta poderosa para gestionar configuraciones en diferentes entornos. Implementarlas correctamente, junto con buenas prácticas de desarrollo como scripts personalizados, mejora significativamente nuestro flujo de trabajo. Te animamos a experimentar con estas técnicas en tus proyectos y compartir tus experiencias en la sección de comentarios.