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
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 variabelnreq.params.idatt innehålla värdet123; - Inuti route-hanteraren hämtas parametern
:idmedreq.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 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.
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
Awesome!
Completion rate improved to 2.56
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
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 variabelnreq.params.idatt innehålla värdet123; - Inuti route-hanteraren hämtas parametern
:idmedreq.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 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.
Tack för dina kommentarer!