Menu
CoddyTech

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.

challenge icon

Aufgabe

Einfach
  • Verschiebe die vier Routen für /api/recipes aus server.js nach routes/recipes.js, unterhalb von /tags.
  • Binde den Router unter /api/recipes ein.

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;
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Express-Grundlagen