Imagina que tu servidor escucha en el puerto 3000. Lo escribes directamente en el código:
Funciona perfecto en tu máquina. Pero cuando lo subes a producción, el proveedor de hosting te dice: "tu app debe escuchar en el puerto que nosotros te asignemos". Y ese puerto cambia según el servidor.
¿Vas a cambiar el código cada vez que cambies de entorno? No. Para eso existen las variables de entorno.
En Node.js, process.env es un objeto que contiene todas las variables de entorno del sistema. Puedes acceder a cualquiera de ellas:
Las variables de entorno no están en tu código — viven en el sistema. Tu código simplemente las lee.
En la vida real, no puedes asumir que una variable de entorno existe. ¿Qué pasa si estás en tu máquina local y nadie definió PORT? Tu app se rompe.
Por eso se usa siempre un valor por defecto:
El operador || dice: "usa process.env.PORT si existe, si no, usa 3000". Así tu app funciona en cualquier entorno sin cambiar una línea de código.
Estos son nombres que verás en prácticamente todo proyecto Node:
| Variable | Para qué sirve |
|---|---|
PORT | Puerto del servidor |
NODE_ENV | Entorno: development, production, test |
DATABASE_URL | Conexión a la base de datos |
API_KEY | Claves de servicios externos |
SECRET | Clave secreta para tokens/sesiones |
Hay varias formas de pasar variables a tu script:
Directamente en la terminal:
En un archivo .env (con la librería dotenv):
En la configuración del hosting (Vercel, Railway, Heroku, etc.): Cada plataforma tiene su panel para definir variables de entorno sin tocar código.
Las variables de entorno son para configuración, no para lógica. Cosas como:
development vs production)Nunca pongas contraseñas, claves API o secretos directamente en tu código. Si subes ese archivo a GitHub, cualquiera puede verlos. Las variables de entorno mantienen esa información fuera del código fuente.
No necesitas definir ninguna variable — tu sistema ya tiene muchas. Ejecuta esto para verlas todas:
Verás un objeto enorme. Algunas que seguro tienes disponibles:
| Variable | Qué contiene |
|---|---|
HOME | Tu directorio personal |
PATH | Las rutas donde el sistema busca ejecutables |
Tu tarea: en index.js, muestra por consola al menos una de estas variables con un mensaje descriptivo. Por ejemplo:
Ejecuta node index.js para verlo.
Las variables de entorno son la forma profesional de configurar aplicaciones. Un mismo código, infinitos entornos.