Express Router
Fa parte della sezione Fondamenti di Express del percorso Node.js di Coddy. Lezione 16 di 20.
server.js ora contiene pagine, route API e middleware, e continua a crescere.
// 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 piccola app con le proprie route, contenuta in un file separato. app.use('/api/books', booksRouter) la monta: il router risponde a GET /api/books con / e a GET /api/books/9780141439518 con /:isbn. Il prefisso viene scritto una sola volta, in app.use. Gli errori generati all'interno di un router raggiungono comunque il gestore degli errori dell'app.
Il nuovo file routes/recipes.js contiene già una route, /tags.
Sfida
Facile- Sposta le quattro route
/api/recipesdaserver.jsaroutes/recipes.js, sotto/tags. - Monta il router su
/api/recipes.
Invia GET /api/recipes/tags, GET /api/recipes/2 e GET /api/recipes/2/scale?by=lots.
Provalo tu
import express from 'express';
import { recipes } from '../data.js';
const router = express.Router();
// Ogni tag, una sola volta, in ordine alfabetico.
router.get('/tags', (req, res) => {
const tags = new Set(recipes.flatMap((recipe) => recipe.tags));
res.json([...tags].sort());
});
// Sposta qui le route /api/recipes da server.js, sotto /tags.
// All'interno di un router, i percorsi sono relativi al punto in cui è montato.
export default router;
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.