Tu servidor de la lección anterior respondía lo mismo a todas las peticiones. Pero un servidor real necesita responder cosas diferentes según lo que le pidan. Cuando visitas /usuarios esperas ver usuarios, cuando visitas /productos esperas ver productos.
Eso se llama routing — dirigir cada petición a la respuesta correcta.
El objeto req (request) tiene una propiedad url que te dice qué ruta pidió el cliente:
Ahora tu servidor tiene tres comportamientos diferentes según la URL. Si alguien visita una ruta que no existe, devuelve un 404 — el código HTTP universal para "no encontrado".
Cuando construyes una API (Application Programming Interface), no devuelves páginas HTML. Devuelves datos en formato JSON para que otro programa (un frontend, una app móvil, otro servidor) los consuma.
JSON se ve así:
Es básicamente un objeto JavaScript convertido a texto. Para enviar JSON desde tu servidor necesitas dos cosas:
Content-Type)JSON.stringifyJuntemos todo lo que hemos aprendido para crear algo que se parezca a una API real:
Para probar las rutas sin salir del script, haz que el servidor se autotestee con fetch dentro del callback de listen:
Ejecuta node index.js y verás las respuestas de cada ruta directamente en la terminal. En la vida real, los datos vendrían de una base de datos en vez de un array, pero la estructura es la misma.
return¿Notaste los return después de cada res.end()? Son importantes. Sin ellos, Node seguiría ejecutando el código y podría intentar enviar dos respuestas a la misma petición, lo que causaría un error. El return garantiza que se sale de la función después de responder.
Lo que acabas de construir es la base de toda API en Node.js. Frameworks como Express, Fastify o Hono hacen exactamente esto pero con una API más cómoda. Saber cómo funciona por debajo te da ventaja cuando los uses — entenderás qué hacen por ti y podrás depurar problemas con más facilidad.
Content-Type: application/json y JSON.stringifylisten, usa fetch para probar tus rutas y muestra las respuestas con console.logHas construido tu primera API desde cero, sin frameworks, sin magia. Todo lo que viene después — Express, bases de datos, autenticación — se construye sobre esta base.