Menu
CoddyTech

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.

challenge icon

Sfida

Facile
  • Sposta le quattro route /api/recipes da server.js a routes/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;
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti di Express