Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Oprettelse og Håndtering af Ruter i Express.js | Udvikling af Webapplikationer med Express.js
Backend-Udvikling med Node.js og Express.js

bookOprettelse 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

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 :id er en URL-parameter. Dette betyder, at når en bruger tilgår en URL som /users/123, vil variablen req.params.id indeholde værdien 123;
  • Inde i rutehåndteringen tilgås parameteren :id via req.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.

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 5

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Suggested prompts:

Can you explain more about how URL parameters work in Express.js?

What happens if I reverse the order of the specific and catch-all routes?

Can you give an example of handling multiple URL parameters in a route?

bookOprettelse 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 :id er en URL-parameter. Dette betyder, at når en bruger tilgår en URL som /users/123, vil variablen req.params.id indeholde værdien 123;
  • Inde i rutehåndteringen tilgås parameteren :id via req.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.

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 5
some-alt