DevPath · Aprenda a programar ESPTEN

Rotas, REST e design de API

Express Router: rotas e parâmetros

O Router do Express

Quando uma API cresce, declarar todas as rotas sobre app se torna incontrolável. O Router permite agrupar as rotas de um recurso em seu próprio módulo e montá-las sob um prefixo:

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

router.get("/", listarProdutos);         // GET  /produtos
router.get("/:id", obterProduto);        // GET  /produtos/5
router.post("/", criarProduto);          // POST /produtos

app.use("/produtos", router);            // monta o grupo sob /produtos

Cada router é uma "mini-aplicação": tem suas próprias rotas e middleware, e é montado onde você quiser. Assim o código fica organizado por recurso.

Parâmetros de rota: req.params

Os segmentos dinâmicos da rota são marcados com : e chegam em req.params (sempre como strings de texto):

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

Query string: req.query

O que vem depois da ? na URL é a query string. O Express a analisa e a deixa em req.query como um objeto:

// GET /produtos?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 quanto req.query chegam como strings. Se você precisar de um número, converta com Number(...).

Coloque isto em prática

O DevPath é um curso prático: aqui você lê a teoria; no app você a coloca em prática com exercícios que rodam de verdade, offline.

Comece grátis no app →
Design REST: recursos e status →