Bootcamp backendontwikkeling met Node.js · Les

Routing en middleware in Express

Beheers routing in Express om API-endpoints te definiëren en middleware voor requestverwerking te implementeren.

Les 2 van 411 stappen

Routing en middleware in Express is een gratis Bootcamp backendontwikkeling met Node.js-les op CoddyKit. Dit is les 2 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Bootcamp backendontwikkeling met Node.js. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Bootcamp backendontwikkeling met Node.js bevat in totaal 4 lessen.

Uw Express-API routeren

Welkom terug! In deze les gaan we dieper in op routering en middleware in Express. Dit zijn kernbegrippen voor het bouwen van krachtige en overzichtelijke webapplicaties.

Routering helpt uw server te begrijpen wat hij moet doen wanneer hij verschillende aanvragen ontvangt, zoals een gebruikersprofiel tonen of nieuwe gegevens opslaan.

Basisroutes definiëren

Een route vertelt uw Express-app hoe deze moet reageren op een bepaald type aanvraag naar een specifiek URL-pad. U definieert routes met methoden zoals app.get(), app.post(), app.put() en app.delete().

Elke routemethode accepteert een pad en een handlerfunctie die wordt uitgevoerd wanneer de route overeenkomt.

Voorbeeld van een eerste GET-route

We maken een eenvoudige GET-route die reageert op aanvragen naar de basis-URL (/). Dit is vaak uw startpagina of een eenvoudige statuscontrole van een API.

De handlerfunctie ontvangt de objecten req (aanvraag) en res (antwoord).

const express = require('express');
const app = express();
const port = 3000;

app.get('/', (req, res) => {
  res.send('Hello from our Express API!');
});

app.listen(port, () => {
  console.log(`Server running on http://localhost:${port}`);
});

Dynamische routeparameters afhandelen

Vaak moet u dynamische waarden uit de URL ophalen, zoals de ID van een gebruiker. Dit doet u met routeparameters, die in het pad worden aangeduid met een dubbele punt (:).

U kunt deze parameters openen via het object req.params in uw routehandler.

const express = require('express');
const app = express();
const port = 3000;

app.get('/users/:userId', (req, res) => {
  const userId = req.params.userId;
  res.send(`You requested user ID: ${userId}`);
});

app.listen(port, () => {
  console.log(`Server running on http://localhost:${port}`);
});

Wat is middleware?

Middleware-functies zijn functies die toegang hebben tot het aanvraagobject (req), het antwoordobject (res) en de volgende middlewarefunctie in de aanvraag-antwoordcyclus van de applicatie.

Ze kunnen:

  • Willekeurige code uitvoeren.
  • Wijzigingen aanbrengen in de aanvraag- en antwoordobjecten.
  • De aanvraag-antwoordcyclus beëindigen.
  • De volgende middlewarefunctie in de stapel aanroepen.

De functie 'next()'

De sleutel tot middleware is de functie next(). Als een middlewarefunctie de aanvraag-antwoordcyclus niet beëindigt, bijvoorbeeld door res.send() aan te roepen, moet deze next() aanroepen om de controle door te geven aan de volgende middlewarefunctie of routehandler.

Als next() niet wordt aangeroepen, blijft de aanvraag hangen.

Middleware op applicatieniveau

Je kunt middleware met app.use() globaal op alle aanvragen toepassen. Dat is handig voor taken zoals logboekregistratie, het parseren van JSON-hoofdteksten of het instellen van gemeenschappelijke headers.

Laten we een eenvoudige logger maken die voor elke binnenkomende aanvraag wordt uitgevoerd.

const express = require('express');
const app = express();
const port = 3000;

// Application-level middleware
app.use((req, res, next) => {
  console.log(`[${new Date().toISOString()}] ${req.method} ${req.url}`);
  next(); // Don't forget to call next()
});

app.get('/', (req, res) => {
  res.send('Check your server console for the log!');
});

app.listen(port, () => {
  console.log(`Server running on http://localhost:${port}`);
});

Middleware op routeniveau

Soms wil je middleware alleen voor specifieke routes uitvoeren. Je kunt middleware op routeniveau toepassen door deze als argument vóór de routehandlerfunctie door te geven.

Je kunt zelfs meerdere middlewarefuncties voor één route aan elkaar koppelen.

const express = require('express');
const app = express();
const port = 3000;

// A simple authentication middleware
const isAuthenticated = (req, res, next) => {
  if (req.headers.authorization === 'Bearer mysecrettoken') {
    next(); // User is authenticated, proceed
  } else {
    res.status(401).send('Unauthorized: Invalid token');
  }
};

// Apply isAuthenticated middleware only to this route
app.get('/dashboard', isAuthenticated, (req, res) => {
  res.send('Welcome to the protected dashboard!');
});

app.get('/', (req, res) => {
  res.send('Public content here.');
});

app.listen(port, () => {
  console.log(`Server running on http://localhost:${port}`);
});

Veelgebruikte toepassingen van middleware

Middleware is bijzonder veelzijdig. Dit zijn enkele veelgebruikte toepassingen:

  • Authenticatie/autorisatie: Gebruikersgegevens of machtigingen controleren.
  • Logboekregistratie: Aanvraaggegevens vastleggen voor foutopsporing of monitoring.
  • Hoofdtekst parseren: JSON- of URL-gecodeerde gegevens uit aanvraaghoofdt teksten halen, bijvoorbeeld met express.json().
  • Foutafhandeling: Fouten opvangen en beantwoorden (speciaal type middleware).
  • Invoer valideren: Controleren of aanvraaggegevens aan specifieke criteria voldoen.

Controle van middleware en routering

Laten we testen of je de routering en middleware van Express begrijpt!

Samenvatting: routering en middleware

Goed gedaan! Je hebt geleerd hoe Express routering gebruikt om aanvragen op basis van URL-paden en HTTP-methoden naar specifieke handlers te sturen.

Je beheerst nu ook middleware: krachtige functies die aanvragen in verschillende fasen kunnen onderscheppen en verwerken, globaal met app.use() of voor specifieke routes. Inzicht in deze concepten is fundamenteel voor het bouwen van robuuste Express-applicaties!

Gratis beginnen

Leer JavaScript met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
22
Lessen
92

Veelgestelde vragen

Is de les “Routing en middleware in Express” gratis?

Ja — de volledige tekst van “Routing en middleware in Express” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Bootcamp backendontwikkeling met Node.js wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Bootcamp backendontwikkeling met Node.js bevat in totaal 4 lessen.

Wat leer ik in “Routing en middleware in Express”?

Beheers routing in Express om API-endpoints te definiëren en middleware voor requestverwerking te implementeren. Je oefent met Bootcamp backendontwikkeling met Node.js door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Bootcamp backendontwikkeling met Node.js te beginnen?

Ervaring vooraf is niet nodig. Bootcamp backendontwikkeling met Node.js op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.

Hoe lang duurt de les “Routing en middleware in Express”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Bootcamp backendontwikkeling met Node.js?

Ja. Elke les over Bootcamp backendontwikkeling met Node.js bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. De basis van het Express.js-framework
  2. Routing en middleware in Express
  3. RESTful API-endpoints ontwerpen
  4. Requestgegevens verwerken: body, query en params
← Terug naar Bootcamp backendontwikkeling met Node.js