Saltar al contenido principal
Próxima clase de SQL el 25 de marzo|

Deploy de nuestra API de Express en Vercel

Hasta ahora nuestra API vivía feliz en localhost… pero eso en cuanto despliegas el frontend es como invitar a tu web a una fiesta y que se presente con la dirección de tu casa. No cuela.

En esta clase vamos a preparar el servidor para producción y desplegar la API en Vercel, que aunque mucha gente lo asocia solo a Next.js, también va perfecto para Express.

El problema: en producción no existe localhost

En local todo funciona: la web hace fetch, la API responde, filtros, resultados, etc. Pero el salto a producción exige una URL real.

Además, antes de desplegar, nos aseguramos de que la API devuelva la misma estructura que espera el frontend (por ejemplo: total, limit, offset y data con los resultados).

Preparando app.js para Vercel

En Vercel, tu backend se ejecuta como una función (serverless). Eso implica un cambio clave:

  1. Debemos exportar la app de Express
  2. No debemos levantar el servidor con app.listen() en producción

Ejemplo:

import express from 'express'

const app = express()
app.use(express.json())

// ...middlewares y rutas

export default app

const PORT = process.env.PORT ?? 1234

if (process.env.NODE_ENV !== 'production') {
  app.listen(PORT, () => {
    console.log(`Servidor levantado en http://localhost:${PORT}`)
  })
}

La idea es simple: en local lo levantas tú, en producción lo levanta la plataforma.

NODE_ENV: la variable que evita sustos de rendimiento

NODE_ENV indica el entorno de ejecución. Los dos valores típicos:

  • development (por defecto cuando no está definida)
  • production

En production se desactivan chequeos extra, logs y otras cositas que penalizan rendimiento. Y sí: es un fallo común dejarlo mal configurado.

Ejemplo al ejecutar:

NODE_ENV=production node app.js

Desplegando con Vercel CLI

1) Instala la CLI

Puedes hacerlo con pnpm o npm:

pnpm i -g vercel
# o
npm i -g vercel

2) Login

vercel login

Esto abre el navegador, autorizas, y listo.

3) Deploy

vercel deploy
# o el atajo
vc deploy

Te dará una URL de preview. Si tu API no responde en /, no pasa nada: prueba tu ruta real (por ejemplo /barrajobs).

Por qué Vercel mola para una API

  • Capa gratuita generosa
  • Deploy muy simple (literalmente un comando)
  • Escalado automático: no “tienes un servidor”, tienes los que haga falta
  • Rollbacks y dashboard con logs
  • HTTPS por defecto

Lo que hemos aprendido

  • ✅ Por qué localhost no vale en producción y cómo dar el salto
  • ✅ Cómo adaptar Express para serverless (exportar app y condicionar listen)
  • ✅ Qué hace NODE_ENV y por qué importa para rendimiento
  • ✅ Flujo completo: instalar CLI - login - deploy - probar rutas

Con esto ya puedes poner tu API a vivir en internet, pagando alquiler en Vercel y no en tu portátil.