Oprettelse og Håndtering af Ruter i Express.js
Stryg for at vise menuen
Lad os undersøge disse praktiske eksempler på oprettelse af ruter i Express.js mere detaljeret.
Grundlæggende ruter
Lad os oprette en simpel Express.js-applikation med ruter for forskellige HTTP-metoder. Hver rute håndterer en specifik HTTP-anmodning og sender et svar tilbage til klienten.
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('This is the homepage.');
});
app.post('/users', (req, res) => {
// Handle user creation logic here.
res.send('User created.');
});
app.put('/users/:id', (req, res) => {
// Handle user update logic here.
res.send(`User ${req.params.id} updated.`);
});
app.delete('/users/:id', (req, res) => {
// Handle user deletion logic here.
res.send(`User ${req.params.id} deleted.`);
});
app.listen(3000, () => {
console.log('Server is running on port 3000.');
});
- GET-rute: Denne rute svarer på en GET-anmodning ved rod-URL'en (
/). Brugere, der tilgår applikationens forside, modtager beskeden "This is the homepage."; - POST-rute: Denne rute svarer på en POST-anmodning ved URL'en
/users. Den bruges typisk til oprettelse af nye brugerposter. Ruten indeholder en kommentar til håndtering af brugeroprettelseslogik, som kan erstattes med den faktiske logik; - PUT-rute: Denne rute svarer på en PUT-anmodning ved URL'en
/users/:id. Den er designet til at opdatere brugerposter baseret på:id-parameteren. Ligesom POST-ruten indeholder den en kommentar til håndtering af opdateringslogik; - DELETE-rute: Denne rute svarer på en DELETE-anmodning ved URL'en
/users/:id. Den bruges til at slette brugerposter baseret på:id-parameteren. Som med de andre ruter indeholder den en kommentar til håndtering af sletningslogik.
Bemærk
Hvis du er usikker på URL'en eller ønsker at gennemgå konceptet, henvises der til følgende artikel: URL vs URI vs URN
Håndtering af URL-parametre
Fokus på oprettelse af en rute, der håndterer URL-parametre. URL-parametre er dynamiske dele af en URL, som kan bruges til at overføre data til serveren. Eksemplet fungerer således:
app.get('/users/:id', (req, res) => {
const userId = req.params.id;
// Fetch user data based on `userId`.
res.send(`User details for ID ${userId}.`);
});
- En rute defineres med
app.get('/users/:id', ...), hvor:ider en URL-parameter. Dette betyder, at når en bruger tilgår en URL som/users/123, vil variablenreq.params.idindeholde værdien123; - Inde i rutehåndteringen tilgås parameteren
:idviareq.params.id; - Kommentaren kan erstattes med logik til at hente brugerdata baseret på den
userId, der er opnået fra URL-parameteren; - Til sidst sendes et svar til klienten med information om brugeren identificeret af
:id-parameteren.
Rækkefølge og Prioritering af Ruter
Rækkefølgen, hvori ruter defineres, er vigtig, da Express anvender en "første match vinder"-strategi. Den første rute, der matcher, vil blive udført. I dette eksempel betragtes et scenarie, hvor både en specifik og en catch-all-rute er til stede:
app.get('/users/:id', (req, res) => {
const userId = req.params.id;
// Fetch user data based on `userId`.
res.send(`User details for ID ${userId}.`);
});
app.get('/users/*', (req, res) => {
// Handle generic user-related requests.
res.send('User-related request.');
});
- Den første rute,
app.get('/users/:id', ...), er en specifik rute, der svarer på URL'er som/users/123. Den håndterer forespørgsler med et specifikt bruger-ID; - Den anden rute,
app.get('/users/*', ...), er en catch-all-rute til generelle brugerrelaterede forespørgsler. Den anvender et wildcard (*) til at matche enhver URL, der starter med/users/, såsom/users/settings.
I dette scenarie er rækkefølgen afgørende. Den specifikke rute skal defineres før catch-all-ruten for at sikre, at den får forrang. Hvis catch-all-ruten defineres først, vil den matche alle URL'er, der starter med /users/, og den specifikke rute vil ikke få mulighed for at håndtere forespørgsler med et bruger-ID.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat