Oprettelse og Håndtering af Ruter i Express.js
Lad os undersøge disse praktiske eksempler på oprettelse af ruter i Express.js mere detaljeret.
🌟 Grundlæggende ruter
Opret et simpelt Express.js-program med ruter til 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
/users-URL'en. Den anvendes 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
/users/:id-URL'en. Den er designet til at opdatere brugerposter baseret på:id-parameteren. Ligesom POST-ruten indeholder den en kommentar til håndtering af brugeropdateringslogik; - DELETE-rute: Denne rute svarer på en DELETE-anmodning ved
/users/:id-URL'en. Den anvendes til at slette brugerposter baseret på:id-parameteren. Som med de andre ruter indeholder den en kommentar til håndtering af bruger-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. Eksempel på funktionalitet:
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 hentet 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 generel 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 generel rute for 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 den generelle rute for at sikre, at den har forrang. Hvis den generelle rute 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
Awesome!
Completion rate improved to 2.56
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
Opret et simpelt Express.js-program med ruter til 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
/users-URL'en. Den anvendes 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
/users/:id-URL'en. Den er designet til at opdatere brugerposter baseret på:id-parameteren. Ligesom POST-ruten indeholder den en kommentar til håndtering af brugeropdateringslogik; - DELETE-rute: Denne rute svarer på en DELETE-anmodning ved
/users/:id-URL'en. Den anvendes til at slette brugerposter baseret på:id-parameteren. Som med de andre ruter indeholder den en kommentar til håndtering af bruger-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. Eksempel på funktionalitet:
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 hentet 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 generel 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 generel rute for 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 den generelle rute for at sikre, at den har forrang. Hvis den generelle rute 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!