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

bookSkapa 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

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 rot-URL:en (/). 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 URL:en /users. Den används vanligtvis för att skapa nya användarposter. Rutten innehåller en kommentar för hantering av användarskapande, som kan ersättas med faktisk logik för att skapa användare;
  • PUT-rutt: Denna rutt svarar på en PUT-förfrågan vid URL:en /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 URL:en /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 hämtas parametern :id med 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 träff gäller"-strategi. Den första matchande rutten kommer att köras. I detta exempel betraktas ett scenario där både en specifik och en generell rutt finns:

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 ett jokertecken (*) 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 rutten för att säkerställa att den får företräde. Om den generella rutten definieras 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 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

Awesome!

Completion rate improved to 2.56

bookSkapa 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

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 rot-URL:en (/). 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 URL:en /users. Den används vanligtvis för att skapa nya användarposter. Rutten innehåller en kommentar för hantering av användarskapande, som kan ersättas med faktisk logik för att skapa användare;
  • PUT-rutt: Denna rutt svarar på en PUT-förfrågan vid URL:en /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 URL:en /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 hämtas parametern :id med 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 träff gäller"-strategi. Den första matchande rutten kommer att köras. I detta exempel betraktas ett scenario där både en specifik och en generell rutt finns:

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 ett jokertecken (*) 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 rutten för att säkerställa att den får företräde. Om den generella rutten definieras 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 användar-ID.

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 5
some-alt