Ruting og middleware i Express
Mestre ruting i Express for å definere API-endepunkter og implementere middleware for behandling av forespørsler.
Ruting og middleware i Express er en gratis leksjon i Bootcamp i backendutvikling med Node.js på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Bootcamp i backendutvikling med Node.js, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Bootcamp i backendutvikling med Node.js inneholder totalt 4 leksjoner.
Ruting av Express-API-et
Velkommen tilbake! I denne leksjonen skal vi se nærmere på ruting og middleware i Express. Dette er grunnleggende konsepter for å bygge kraftige og velorganiserte webapplikasjoner.
Ruting hjelper serveren med å forstå hva den skal gjøre når den mottar ulike forespørsler, for eksempel vise en brukerprofil eller lagre nye data.
Definer grunnleggende ruter
En rute forteller Express-appen hvordan den skal svare på en bestemt type forespørsel til en bestemt URL-sti. Du definerer ruter med metoder som app.get(), app.post(), app.put() og app.delete().
Hver rutemetode tar en sti og en behandlerfunksjon som kjøres når ruten samsvarer med forespørselen.
Eksempel på den første GET-ruten
La oss opprette en enkel GET-rute som svarer på forespørsler til rot-URL-en (/). Dette er ofte hjemmesiden din eller en enkel statussjekk for et API.
Behandlerfunksjonen mottar objektene req (forespørsel) 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åndter dynamiske ruteparametere
Ofte trenger du å hente dynamiske verdier fra URL-en, for eksempel ID-en til en bruker. Dette gjør du med ruteparametere, som angis med kolon (:) i stien.
Du får tilgang til disse parameterne via req.params-objektet i rutens behandler.
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}`);
});Hva er middleware?
Middleware-funksjoner er funksjoner som har tilgang til forespørselsobjektet (req), responsobjektet (res) og den neste middleware-funksjonen i programmets forespørsels-respons-syklus.
De kan:
- Utføre vilkårlig kode.
- Gjøre endringer i forespørsels- og responsobjektene.
- Avslutte forespørsels-respons-syklusen.
- Kalle den neste middleware-funksjonen i stakken.
Funksjonen «next()»
Nøkkelen til middleware er funksjonen next(). Hvis en middleware-funksjon ikke avslutter forespørsels-respons-syklusen (for eksempel ved å kalle res.send()), må den kalle next() for å overføre kontrollen til den neste middleware-funksjonen eller rutehåndtereren.
Hvis next() ikke kalles, blir forespørselen stående og vente.
Middleware på applikasjonsnivå
De kan bruke middleware globalt for alle forespørsler ved hjelp av app.use(). Dette er nyttig for oppgaver som logging, tolking av JSON-innhold eller angivelse av felles headere.
La oss opprette en enkel logger som kjører for hver innkommende forespørsel.
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å rutenivå
Noen ganger ønsker man bare at middleware skal kjøre for bestemte ruter. De kan bruke middleware på rutenivå ved å sende den inn som et argument før rutehåndtererfunksjonen.
De kan også kjede sammen flere middleware-funksjoner for én enkelt rute.
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}`);
});Vanlige bruksområder for middleware
Middleware er svært allsidig. Her er noen vanlige bruksområder:
- Autentisering/autorisasjon: Kontrollere brukerlegitimasjon eller tillatelser.
- Logging: Registrere informasjon om forespørsler for feilsøking eller overvåking.
- Tolking av body: Hente ut JSON- eller URL-kodede data fra forespørselsinnhold (for eksempel
express.json()). - Feilhåndtering: Fange opp og svare på feil (en spesiell type middleware).
- Validering av inndata: Kontrollere at forespørselsdata oppfyller bestemte kriterier.
Kontroll av middleware og ruting
La oss teste forståelsen Deres av Express-ruting og middleware!
Oppsummering: Ruting og middleware
Godt jobbet! De har lært hvordan Express bruker ruting til å sende forespørsler til bestemte håndterere basert på URL-stier og HTTP-metoder.
De har også fått kontroll på middleware, kraftige funksjoner som kan fange opp og behandle forespørsler på ulike stadier, enten globalt med app.use() eller for bestemte ruter. Å forstå disse konseptene er grunnleggende for å bygge robuste Express-applikasjoner!
Lær deg JavaScript med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 22
- Leksjoner
- 92
Ofte stilte spørsmål
Er leksjonen «Ruting og middleware i Express» gratis?
Ja – hele teksten i «Ruting og middleware i Express» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Bootcamp i backendutvikling med Node.js-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Bootcamp i backendutvikling med Node.js inneholder totalt 4 leksjoner.
Hva lærer jeg i «Ruting og middleware i Express»?
Mestre ruting i Express for å definere API-endepunkter og implementere middleware for behandling av forespørsler. Du øver på Bootcamp i backendutvikling med Node.js med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Bootcamp i backendutvikling med Node.js?
Ingen tidligere erfaring er nødvendig. Bootcamp i backendutvikling med Node.js på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.
Hvor lang tid tar leksjonen «Ruting og middleware i Express»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Bootcamp i backendutvikling med Node.js-leksjonen?
Ja. Alle Bootcamp i backendutvikling med Node.js-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Grunnlaget i Express.js-rammeverket
- Ruting og middleware i Express
- Utforme RESTful API-endepunkter
- Håndtering av forespørselsdata: body, query og params