DevPath · Aprende a programar ESPTEN

Rutas, REST y diseño de API

Express Router: rutas y parámetros

El Router de Express

Cuando una API crece, declarar todas las rutas sobre app se vuelve inmanejable. El Router permite agrupar las rutas de un recurso en su propio módulo y montarlas bajo un prefijo:

import { Router } from "express";
const router = Router();

router.get("/", listarProductos);       // GET  /productos
router.get("/:id", obtenerProducto);     // GET  /productos/5
router.post("/", crearProducto);         // POST /productos

app.use("/productos", router);           // monta el grupo bajo /productos

Cada router es una "mini-aplicación": tiene sus propias rutas y middleware, y se monta donde quieras. Así el código queda organizado por recurso.

Parámetros de ruta: req.params

Los segmentos dinámicos de la ruta se marcan con : y llegan en req.params (siempre como cadenas de texto):

router.get("/:id", (req, res) => {
  const id = req.params.id;   // /productos/5  ->  "5"
  res.json({ id });
});

Query string: req.query

Lo que viene después de la ? en la URL es la query string. Express la parsea y la deja en req.query como un objeto:

// GET /productos?page=2&limit=10
router.get("/", (req, res) => {
  const page = req.query.page;     // "2"
  const limit = req.query.limit;   // "10"
  res.json({ page, limit });
});

Tanto req.params como req.query llegan como strings. Si necesitas un número, conviértelo con Number(...).

Pon esto en práctica

DevPath es un curso práctico: aquí lees la teoría; en la app la pones en práctica con ejercicios que se ejecutan de verdad, sin conexión.

Empezar gratis en la app →
Diseño REST: recursos y estados →