Erstellen und Verwalten von Routen in Express.js
Im Folgenden werden diese praxisnahen Beispiele zur Erstellung von Routen in Express.js ausführlicher betrachtet.
🌟 Grundlegende Routen
Erstellung einer einfachen Express.js-Anwendung mit Routen für verschiedene HTTP-Methoden. Jede Route verarbeitet eine bestimmte HTTP-Anfrage und sendet eine Antwort an den Client zurück.
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-Route: Diese Route antwortet auf eine GET-Anfrage an die Root-URL (
/). Nutzer, die die Startseite der Anwendung aufrufen, erhalten die Nachricht "This is the homepage."; - POST-Route: Diese Route antwortet auf eine POST-Anfrage an die URL
/users. Sie wird typischerweise zur Erstellung neuer Benutzer-Datensätze verwendet. Die Route enthält einen Kommentar für die Implementierung der Benutzererstellung, der durch die eigentliche Logik ersetzt werden kann; - PUT-Route: Diese Route antwortet auf eine PUT-Anfrage an die URL
/users/:id. Sie ist für das Aktualisieren von Benutzer-Datensätzen anhand des:id-Parameters vorgesehen. Wie die POST-Route enthält sie einen Kommentar für die Aktualisierungslogik; - DELETE-Route: Diese Route antwortet auf eine DELETE-Anfrage an die URL
/users/:id. Sie dient zum Löschen von Benutzer-Datensätzen anhand des:id-Parameters. Wie bei den anderen Routen ist ein Kommentar für die Löschlogik enthalten.
Hinweis
Falls Unsicherheit bezüglich der URL besteht oder das Konzept überprüft werden soll, bitte den folgenden Artikel konsultieren: URL vs URI vs URN
🌟 Umgang mit URL-Parametern
Fokus auf die Erstellung einer Route, die URL-Parameter verarbeitet. URL-Parameter sind dynamische Teile einer URL, die zur Datenübertragung an den Server verwendet werden können. Funktionsweise des folgenden Beispiels:
app.get('/users/:id', (req, res) => {
const userId = req.params.id;
// Fetch user data based on `userId`.
res.send(`User details for ID ${userId}.`);
});
- Definition einer Route mit
app.get('/users/:id', ...), wobei:idein URL-Parameter ist. Beim Zugriff auf eine URL wie/users/123enthält die Variablereq.params.idden Wert123; - Zugriff auf den Parameter
:idinnerhalb des Routings mitreq.params.id; - Der Kommentar kann durch Logik ersetzt werden, um Benutzerdaten basierend auf der aus dem URL-Parameter erhaltenen
userIdabzurufen; - Abschließend erfolgt eine Antwort an den Client mit Informationen über den durch den Parameter
:ididentifizierten Benutzer.
🌟 Routenreihenfolge und Priorisierung
Die Reihenfolge, in der Routen definiert werden, ist entscheidend, da Express eine First-Match-Wins-Strategie verwendet. Die erste passende Route wird ausgeführt. In diesem Beispiel betrachten wir ein Szenario, in dem sowohl eine spezifische als auch eine Catch-All-Route vorhanden ist:
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.');
});
- Die erste Route,
app.get('/users/:id', ...), ist eine spezifische Route, die auf URLs wie/users/123reagiert. Sie verarbeitet Anfragen mit einer bestimmten Benutzer-ID; - Die zweite Route,
app.get('/users/*', ...), ist eine Catch-All-Route für generische benutzerbezogene Anfragen. Sie verwendet ein Wildcard (*), um jede URL zu erfassen, die mit/users/beginnt, wie zum Beispiel/users/settings.
In diesem Szenario ist die Reihenfolge entscheidend. Die spezifische Route sollte vor der Catch-All-Route definiert werden, damit sie Vorrang hat. Wenn die Catch-All-Route zuerst definiert wird, erfasst sie alle URLs, die mit /users/ beginnen, und die spezifische Route hat keine Möglichkeit, Anfragen mit einer Benutzer-ID zu verarbeiten.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Can you explain more about how route order affects request handling in Express.js?
What happens if I reverse the order of the specific and catch-all routes?
Can you give more examples of using URL parameters in routes?
Awesome!
Completion rate improved to 2.56
Erstellen und Verwalten von Routen in Express.js
Swipe um das Menü anzuzeigen
Im Folgenden werden diese praxisnahen Beispiele zur Erstellung von Routen in Express.js ausführlicher betrachtet.
🌟 Grundlegende Routen
Erstellung einer einfachen Express.js-Anwendung mit Routen für verschiedene HTTP-Methoden. Jede Route verarbeitet eine bestimmte HTTP-Anfrage und sendet eine Antwort an den Client zurück.
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-Route: Diese Route antwortet auf eine GET-Anfrage an die Root-URL (
/). Nutzer, die die Startseite der Anwendung aufrufen, erhalten die Nachricht "This is the homepage."; - POST-Route: Diese Route antwortet auf eine POST-Anfrage an die URL
/users. Sie wird typischerweise zur Erstellung neuer Benutzer-Datensätze verwendet. Die Route enthält einen Kommentar für die Implementierung der Benutzererstellung, der durch die eigentliche Logik ersetzt werden kann; - PUT-Route: Diese Route antwortet auf eine PUT-Anfrage an die URL
/users/:id. Sie ist für das Aktualisieren von Benutzer-Datensätzen anhand des:id-Parameters vorgesehen. Wie die POST-Route enthält sie einen Kommentar für die Aktualisierungslogik; - DELETE-Route: Diese Route antwortet auf eine DELETE-Anfrage an die URL
/users/:id. Sie dient zum Löschen von Benutzer-Datensätzen anhand des:id-Parameters. Wie bei den anderen Routen ist ein Kommentar für die Löschlogik enthalten.
Hinweis
Falls Unsicherheit bezüglich der URL besteht oder das Konzept überprüft werden soll, bitte den folgenden Artikel konsultieren: URL vs URI vs URN
🌟 Umgang mit URL-Parametern
Fokus auf die Erstellung einer Route, die URL-Parameter verarbeitet. URL-Parameter sind dynamische Teile einer URL, die zur Datenübertragung an den Server verwendet werden können. Funktionsweise des folgenden Beispiels:
app.get('/users/:id', (req, res) => {
const userId = req.params.id;
// Fetch user data based on `userId`.
res.send(`User details for ID ${userId}.`);
});
- Definition einer Route mit
app.get('/users/:id', ...), wobei:idein URL-Parameter ist. Beim Zugriff auf eine URL wie/users/123enthält die Variablereq.params.idden Wert123; - Zugriff auf den Parameter
:idinnerhalb des Routings mitreq.params.id; - Der Kommentar kann durch Logik ersetzt werden, um Benutzerdaten basierend auf der aus dem URL-Parameter erhaltenen
userIdabzurufen; - Abschließend erfolgt eine Antwort an den Client mit Informationen über den durch den Parameter
:ididentifizierten Benutzer.
🌟 Routenreihenfolge und Priorisierung
Die Reihenfolge, in der Routen definiert werden, ist entscheidend, da Express eine First-Match-Wins-Strategie verwendet. Die erste passende Route wird ausgeführt. In diesem Beispiel betrachten wir ein Szenario, in dem sowohl eine spezifische als auch eine Catch-All-Route vorhanden ist:
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.');
});
- Die erste Route,
app.get('/users/:id', ...), ist eine spezifische Route, die auf URLs wie/users/123reagiert. Sie verarbeitet Anfragen mit einer bestimmten Benutzer-ID; - Die zweite Route,
app.get('/users/*', ...), ist eine Catch-All-Route für generische benutzerbezogene Anfragen. Sie verwendet ein Wildcard (*), um jede URL zu erfassen, die mit/users/beginnt, wie zum Beispiel/users/settings.
In diesem Szenario ist die Reihenfolge entscheidend. Die spezifische Route sollte vor der Catch-All-Route definiert werden, damit sie Vorrang hat. Wenn die Catch-All-Route zuerst definiert wird, erfasst sie alle URLs, die mit /users/ beginnen, und die spezifische Route hat keine Möglichkeit, Anfragen mit einer Benutzer-ID zu verarbeiten.
Danke für Ihr Feedback!