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
Ein einfaches Express.js-Anwendungsbeispiel 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 zum Erstellen neuer Benutzerdatensä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 Benutzerdatensätzen anhand des Parameters:idvorgesehen. Wie bei der POST-Route ist ein Kommentar für die Aktualisierungslogik enthalten; - DELETE-Route: Diese Route antwortet auf eine DELETE-Anfrage an die URL
/users/:id. Sie wird zum Löschen von Benutzerdatensätzen anhand des Parameters:idverwendet. Wie bei den anderen Routen ist ein Kommentar für die Löschlogik enthalten.
Hinweis
Falls Unsicherheiten bezüglich der URL bestehen oder das Konzept wiederholt werden soll, bitte den folgenden Artikel konsultieren: URL vs URI vs URN
Umgang mit URL-Parametern
Im Folgenden liegt der Fokus auf der Erstellung einer Route, die URL-Parameter verarbeitet. URL-Parameter sind dynamische Bestandteile einer URL, die zur Datenübertragung an den Server genutzt 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:ideinen URL-Parameter darstellt. Beim Aufruf einer URL wie/users/123enthält die Variablereq.params.idden Wert123; - Zugriff auf den Parameter
:idinnerhalb des Routings überreq.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 zum Benutzer, der durch den Parameter
:ididentifiziert wird.
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 existieren:
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 erhält. 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 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
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
Ein einfaches Express.js-Anwendungsbeispiel 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 zum Erstellen neuer Benutzerdatensä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 Benutzerdatensätzen anhand des Parameters:idvorgesehen. Wie bei der POST-Route ist ein Kommentar für die Aktualisierungslogik enthalten; - DELETE-Route: Diese Route antwortet auf eine DELETE-Anfrage an die URL
/users/:id. Sie wird zum Löschen von Benutzerdatensätzen anhand des Parameters:idverwendet. Wie bei den anderen Routen ist ein Kommentar für die Löschlogik enthalten.
Hinweis
Falls Unsicherheiten bezüglich der URL bestehen oder das Konzept wiederholt werden soll, bitte den folgenden Artikel konsultieren: URL vs URI vs URN
Umgang mit URL-Parametern
Im Folgenden liegt der Fokus auf der Erstellung einer Route, die URL-Parameter verarbeitet. URL-Parameter sind dynamische Bestandteile einer URL, die zur Datenübertragung an den Server genutzt 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:ideinen URL-Parameter darstellt. Beim Aufruf einer URL wie/users/123enthält die Variablereq.params.idden Wert123; - Zugriff auf den Parameter
:idinnerhalb des Routings überreq.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 zum Benutzer, der durch den Parameter
:ididentifiziert wird.
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 existieren:
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 erhält. 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!