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.
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 variabelnreq.params.idatt innehålla värdet123; - Inuti route-hanteraren nås parametern
:idviareq.params.id; - Kommentaren kan ersättas med logik för att hämta användardata baserat på det
userIdsom erhålls från URL-parametern; - Slutligen skickas information om användaren som identifieras av parametern
:idsom 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.
Tack för dina kommentarer!
Fråga AI
Fråga AI
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.
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 variabelnreq.params.idatt innehålla värdet123; - Inuti route-hanteraren nås parametern
:idviareq.params.id; - Kommentaren kan ersättas med logik för att hämta användardata baserat på det
userIdsom erhålls från URL-parametern; - Slutligen skickas information om användaren som identifieras av parametern
:idsom 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.
Tack för dina kommentarer!