Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Skapa och Hantera Rutter i Express.js | Utveckling av Webbapplikationer med Express.js
Backendutveckling med Node.js och Express.js

Skapa och Hantera Rutter i Express.js

Svep för att visa menyn

Låt oss utforska dessa praktiska exempel på hur man skapar rutter i Express.js mer ingående.

Grundläggande rutter

Ett enkelt Express.js-program med rutter för olika HTTP-metoder. Varje rutt hanterar en specifik HTTP-förfrågan och skickar ett svar tillbaka till 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-rutt: Denna rutt svarar på en GET-förfrågan vid rotadressen (/). Användare som besöker applikationens startsida får meddelandet "This is the homepage.";
  • POST-rutt: Denna rutt svarar på en POST-förfrågan vid adressen /users. Den används vanligtvis för att skapa nya användarposter. Rutten innehåller en kommentar för hantering av logik för att skapa användare, som kan ersättas med faktisk logik;
  • PUT-rutt: Denna rutt svarar på en PUT-förfrågan vid adressen /users/:id. Den är avsedd för att uppdatera användarposter baserat på parametern :id. Precis som POST-rutten innehåller den en kommentar för hantering av uppdateringslogik;
  • DELETE-rutt: Denna rutt svarar på en DELETE-förfrågan vid adressen /users/:id. Den används för att ta bort användarposter baserat på parametern :id. Liksom de andra rutterna innehåller den en kommentar för hantering av logik för borttagning av användare.
Note
Notering

Om du är osäker på URL:en eller vill repetera konceptet, vänligen se följande artikel: URL vs URI vs URN

Hantera URL-parametrar

Fokus på att skapa en route som hanterar URL-parametrar. URL-parametrar är dynamiska delar av en URL som kan användas för att skicka data till servern. Så här fungerar detta exempel:

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 route definieras med app.get('/users/:id', ...), där :id är en URL-parameter. Detta innebär att när en användare går till en URL som /users/123, kommer variabeln req.params.id att innehålla värdet 123;
  • Inuti route-hanteraren nås parametern :id via req.params.id;
  • Kommentaren kan ersättas med logik för att hämta användardata baserat på det userId som erhålls från URL-parametern;
  • Slutligen skickas information om användaren som identifieras av parametern :id som svar till klienten.

Ruttordning och prioritering

Den ordning i vilken rutter definieras är viktig eftersom Express använder en "första träff gäller"-strategi. Den första matchande rutten kommer att köras. I detta exempel betraktas ett scenario där du har både en specifik och en generell rutt:

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örsta rutten, app.get('/users/:id', ...), är en specifik rutt som svarar på URL:er som /users/123. Den hanterar förfrågningar med ett specifikt användar-ID;
  • Den andra rutten, app.get('/users/*', ...), är en generell rutt för användarrelaterade förfrågningar. Den använder en wildcard (*) för att matcha alla URL:er som börjar med /users/, såsom /users/settings.

I detta scenario är ordningen avgörande. Den specifika rutten bör definieras före den generella för att säkerställa att den får företräde. Om du definierar den generella rutten först kommer den att matcha alla URL:er som börjar med /users/, och den specifika rutten får ingen möjlighet att hantera förfrågningar med ett användar-ID.

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 5

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Skapa och Hantera Rutter i Express.js

Låt oss utforska dessa praktiska exempel på hur man skapar rutter i Express.js mer ingående.

Grundläggande rutter

Ett enkelt Express.js-program med rutter för olika HTTP-metoder. Varje rutt hanterar en specifik HTTP-förfrågan och skickar ett svar tillbaka till 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-rutt: Denna rutt svarar på en GET-förfrågan vid rotadressen (/). Användare som besöker applikationens startsida får meddelandet "This is the homepage.";
  • POST-rutt: Denna rutt svarar på en POST-förfrågan vid adressen /users. Den används vanligtvis för att skapa nya användarposter. Rutten innehåller en kommentar för hantering av logik för att skapa användare, som kan ersättas med faktisk logik;
  • PUT-rutt: Denna rutt svarar på en PUT-förfrågan vid adressen /users/:id. Den är avsedd för att uppdatera användarposter baserat på parametern :id. Precis som POST-rutten innehåller den en kommentar för hantering av uppdateringslogik;
  • DELETE-rutt: Denna rutt svarar på en DELETE-förfrågan vid adressen /users/:id. Den används för att ta bort användarposter baserat på parametern :id. Liksom de andra rutterna innehåller den en kommentar för hantering av logik för borttagning av användare.
Note
Notering

Om du är osäker på URL:en eller vill repetera konceptet, vänligen se följande artikel: URL vs URI vs URN

Hantera URL-parametrar

Fokus på att skapa en route som hanterar URL-parametrar. URL-parametrar är dynamiska delar av en URL som kan användas för att skicka data till servern. Så här fungerar detta exempel:

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 route definieras med app.get('/users/:id', ...), där :id är en URL-parameter. Detta innebär att när en användare går till en URL som /users/123, kommer variabeln req.params.id att innehålla värdet 123;
  • Inuti route-hanteraren nås parametern :id via req.params.id;
  • Kommentaren kan ersättas med logik för att hämta användardata baserat på det userId som erhålls från URL-parametern;
  • Slutligen skickas information om användaren som identifieras av parametern :id som svar till klienten.

Ruttordning och prioritering

Den ordning i vilken rutter definieras är viktig eftersom Express använder en "första träff gäller"-strategi. Den första matchande rutten kommer att köras. I detta exempel betraktas ett scenario där du har både en specifik och en generell rutt:

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örsta rutten, app.get('/users/:id', ...), är en specifik rutt som svarar på URL:er som /users/123. Den hanterar förfrågningar med ett specifikt användar-ID;
  • Den andra rutten, app.get('/users/*', ...), är en generell rutt för användarrelaterade förfrågningar. Den använder en wildcard (*) för att matcha alla URL:er som börjar med /users/, såsom /users/settings.

I detta scenario är ordningen avgörande. Den specifika rutten bör definieras före den generella för att säkerställa att den får företräde. Om du definierar den generella rutten först kommer den att matcha alla URL:er som börjar med /users/, och den specifika rutten får ingen möjlighet att hantera förfrågningar med ett användar-ID.

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 5
some-alt