Router de Express
Parte de la sección Conceptos básicos de Express del Journey de Node.js de Coddy. Lección 16 de 20.
server.js ahora contiene páginas, rutas de API y middleware, y sigue creciendo.
// 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() crea una pequeña aplicación con sus propias rutas, alojada en su propio archivo. app.use('/api/books', booksRouter) la monta: / del enrutador responde a GET /api/books, y /:isbn responde a GET /api/books/9780141439518. El prefijo se escribe una sola vez, en app.use. Los errores lanzados dentro de un enrutador siguen llegando al controlador de errores de la aplicación.
El nuevo archivo routes/recipes.js ya tiene una ruta, /tags.
Desafío
Fácil- Mueve las cuatro rutas de
/api/recipesdeserver.jsaroutes/recipes.js, debajo de/tags. - Monta el enrutador en
/api/recipes.
Envía GET /api/recipes/tags, GET /api/recipes/2 y GET /api/recipes/2/scale?by=lots.
Pruébalo tú mismo
import express from 'express';
import { recipes } from '../data.js';
const router = express.Router();
// Cada etiqueta, una sola vez, en orden alfabético.
router.get('/tags', (req, res) => {
const tags = new Set(recipes.flatMap((recipe) => recipe.tags));
res.json([...tags].sort());
});
// Mueve las rutas de /api/recipes desde server.js aquí, debajo de /tags.
// Dentro de un router, las rutas son relativas al lugar donde está montado.
export default router;
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.