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
Quizzes & Challenges
Quizzes
Challenges
/
Backendutveckling med Node.js och Express.js

bookSkapa och Hantera Rutter i Express.js

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

Grundläggande rutter

Skapa en enkel Express.js-applikation 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, vilken 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. Liksom 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. Precis som de andra rutterna innehåller den en kommentar för hantering av borttagningslogik.

Obs

Om du är osäker på vad en URL är 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 ett svar till klienten med information om användaren som identifieras av parametern :id.

Ruttordning och prioritering

Den ordning i vilken rutter definieras är viktig eftersom Express använder en "första match vinner"-strategi. Den första matchande rutten kommer att exekveras. I detta exempel betraktas ett scenario där du har både en specifik och en fångst-allt-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 fångst-allt-rutt för generella användarrelaterade förfrågningar. Den använder ett 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 fångst-allt-rutten för att säkerställa att den får företräde. Om du definierar fångst-allt-rutten först kommer den att matcha alla URL:er som börjar med /users/, och den specifika rutten får inte 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

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?

Awesome!

Completion rate improved to 2.56

bookSkapa och Hantera Rutter i Express.js

Svep för att visa menyn

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

Grundläggande rutter

Skapa en enkel Express.js-applikation 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, vilken 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. Liksom 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. Precis som de andra rutterna innehåller den en kommentar för hantering av borttagningslogik.

Obs

Om du är osäker på vad en URL är 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 ett svar till klienten med information om användaren som identifieras av parametern :id.

Ruttordning och prioritering

Den ordning i vilken rutter definieras är viktig eftersom Express använder en "första match vinner"-strategi. Den första matchande rutten kommer att exekveras. I detta exempel betraktas ett scenario där du har både en specifik och en fångst-allt-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 fångst-allt-rutt för generella användarrelaterade förfrågningar. Den använder ett 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 fångst-allt-rutten för att säkerställa att den får företräde. Om du definierar fångst-allt-rutten först kommer den att matcha alla URL:er som börjar med /users/, och den specifika rutten får inte 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