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.
Desafio
Fácil- Mova as quatro rotas de
/api/recipesdeserver.jspararoutes/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;
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.