Express Router
Teil des Abschnitts Express-Grundlagen der Node.js-Journey von Coddy. Lektion 16 von 20.
server.js enthält jetzt Seiten, API-Routen und Middleware und wächst immer weiter.
// 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() erstellt eine kleine App mit eigenen Routen, die in einer eigenen Datei untergebracht sind. app.use('/api/books', booksRouter) bindet sie ein: Der Router beantwortet mit / die Anfrage GET /api/books und mit /:isbn die Anfrage GET /api/books/9780141439518. Das Präfix wird einmal in app.use angegeben. Fehler, die innerhalb eines Routers ausgelöst werden, erreichen weiterhin den Fehler-Handler der App.
Die neue Datei routes/recipes.js enthält bereits eine Route, /tags.
Aufgabe
Einfach- Verschiebe die vier Routen für
/api/recipesausserver.jsnachroutes/recipes.js, unterhalb von/tags. - Binde den Router unter
/api/recipesein.
Sende GET /api/recipes/tags, GET /api/recipes/2 und GET /api/recipes/2/scale?by=lots.
Probier es selbst
import express from 'express';
import { recipes } from '../data.js';
const router = express.Router();
// Jedes Tag einmal, in alphabetischer Reihenfolge.
router.get('/tags', (req, res) => {
const tags = new Set(recipes.flatMap((recipe) => recipe.tags));
res.json([...tags].sort());
});
// Verschiebe die /api/recipes-Routen aus server.js hierher, unter /tags.
// Innerhalb eines Routers beziehen sich Pfade auf den Ort, an dem er eingebunden ist.
export default router;
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.