Routing og middleware i Express
Behersk routing i Express for at definere API-endpoints, og implementer middleware til behandling af requests.
Routing og middleware i Express er en gratis Bootcamp i backendudvikling med Node.js-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Bootcamp i backendudvikling med Node.js, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Bootcamp i backendudvikling med Node.js-kurset indeholder 4 lektioner i alt.
Routing af din Express-API
Velkommen tilbage! I denne lektion dykker vi ned i routing og middleware i Express. Det er centrale begreber, når du bygger effektive og velorganiserede webapplikationer.
Routing hjælper din server med at forstå, hvad den skal gøre, når den modtager forskellige forespørgsler, for eksempel vise en brugerprofil eller gemme nye data.
Definér grundlæggende routes
En route fortæller din Express-app, hvordan den skal svare på en bestemt type forespørgsel til en bestemt URL-sti. Du definerer routes med metoder som app.get(), app.post(), app.put() og app.delete().
Hver routemetode tager en sti og en handlerfunktion, der udføres, når routen matches.
Første GET-route: Eksempel
Lad os oprette en enkel GET-route, der svarer på forespørgsler til rod-URL'en (/). Det er ofte din startside eller en grundlæggende statuskontrol af en API.
Handlerfunktionen modtager objekterne req (forespørgsel) og res (svar).
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}`);
});Håndtér dynamiske routeparametre
Ofte har du brug for at hente dynamiske værdier fra URL'en, for eksempel en brugers ID. Det gør du med routeparametre, som angives med et kolon (:) i stien.
Du kan få adgang til disse parametre via objektet req.params i din route-handler.
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}`);
});Hvad er middleware?
Middleware-funktioner er funktioner, der har adgang til request-objektet (req), response-objektet (res) og den næste middleware-funktion i programmets request-response-cyklus.
De kan:
- Udføre vilkårlig kode.
- Ændre request- og response-objekterne.
- Afslutte request-response-cyklussen.
- Kalder den næste middleware-funktion i stakken.
Funktionen 'next()'
Nøglen til middleware er funktionen next(). Hvis en middleware-funktion ikke afslutter request-response-cyklussen (f.eks. ved at kalde res.send()), skal den kalde next() for at give kontrollen videre til den næste middleware-funktion eller route-handler.
Hvis next() ikke kaldes, kommer requesten til at hænge.
Middleware på programniveau
Du kan anvende middleware globalt på alle requests ved hjælp af app.use(). Det er praktisk til opgaver som logging, parsing af JSON-bodyer eller indstilling af fælles headers.
Lad os oprette en simpel logger, der kører for hver indgående request.
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 på routeniveau
Nogle gange vil du kun have middleware til at køre for bestemte routes. Du kan anvende middleware på routeniveau ved at sende den som et argument før route-handler-funktionen.
Du kan også kæde flere middleware-funktioner sammen for en enkelt route.
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}`);
});Almindelige anvendelser af middleware
Middleware er utroligt alsidigt. Her er nogle almindelige anvendelser:
- Godkendelse og autorisation: Kontrol af brugeroplysninger eller tilladelser.
- Logging: Registrering af request-oplysninger til fejlfinding eller overvågning.
- Parsing af body: Udtræk af JSON- eller URL-kodede data fra request-bodyer (f.eks.
express.json()). - Fejlhåndtering: Registrering og besvarelse af fejl (en særlig middleware-type).
- Validering af input: Sikring af, at request-data opfylder bestemte kriterier.
Kontrol af middleware og routing
Lad os teste din forståelse af Express-routing og middleware!
Opsummering: Routing og middleware
Godt klaret! Du har lært, hvordan Express bruger routing til at sende requests til bestemte handlere baseret på URL-stier og HTTP-metoder.
Du har også fået styr på middleware, effektive funktioner, der kan opfange og behandle requests på forskellige trin, enten globalt med app.use() eller for bestemte routes. Det er grundlæggende at forstå disse begreber, når du skal bygge robuste Express-applikationer!
Lær JavaScript med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 22
- Lektioner
- 92
Ofte stillede spørgsmål
Er lektionen “Routing og middleware i Express” gratis?
Ja — hele teksten til “Routing og middleware i Express” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Bootcamp i backendudvikling med Node.js-kurset, skal du opgradere til CoddyKit PRO. Bootcamp i backendudvikling med Node.js-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Routing og middleware i Express”?
Behersk routing i Express for at definere API-endpoints, og implementer middleware til behandling af requests. Du øver dig i Bootcamp i backendudvikling med Node.js med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Bootcamp i backendudvikling med Node.js?
Der kræves ingen tidligere erfaring. Bootcamp i backendudvikling med Node.js på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.
Hvor lang tid tager lektionen “Routing og middleware i Express”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Bootcamp i backendudvikling med Node.js-lektion?
Ja. Alle Bootcamp i backendudvikling med Node.js-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Grundlæggende Express.js-framework
- Routing og middleware i Express
- Design af RESTful API-endpoints
- Håndtering af request-data: body, query og params