Menu
CoddyTech

Roteador do Express

Parte da seção Fundamentos de Express do Journey de Node.js da Coddy. Lição 16 de 20.

server.js agora contém páginas, rotas de API e middleware, e continua crescendo.

// routes/books.js
const router = express.Router();
router.get('/', (req, res) => res.json(books));
router.get('/:isbn', (req, res) => res.json(findBook(req.params.isbn)));
export default router;

// server.js
app.use('/api/books', booksRouter);

express.Router() cria um pequeno app com suas próprias rotas, mantidas em seu próprio arquivo. app.use('/api/books', booksRouter) o monta: / do roteador responde a GET /api/books, e /:isbn responde a GET /api/books/9780141439518. O prefixo é escrito uma vez, em app.use. Erros lançados dentro de um roteador ainda chegam ao manipulador de erros do app.

O novo arquivo routes/recipes.js já tem uma rota, /tags.

challenge icon

Desafio

Fácil
  • Mova as quatro rotas de /api/recipes de server.js para routes/recipes.js, abaixo de /tags.
  • Monte o roteador em /api/recipes.

Envie GET /api/recipes/tags, GET /api/recipes/2 e GET /api/recipes/2/scale?by=lots.

Experimente você mesmo

import express from 'express';
import { recipes } from '../data.js';

const router = express.Router();

// Cada tag, uma única vez, em ordem alfabética.
router.get('/tags', (req, res) => {
    const tags = new Set(recipes.flatMap((recipe) => recipe.tags));
    res.json([...tags].sort());
});

// Mova as rotas /api/recipes de server.js para cá, abaixo de /tags.
// Dentro de um router, os caminhos são relativos ao local onde ele é montado.

export default router;
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos de Express