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 näher 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 zum Erstellen neuer Benutzer-Datensätze verwendet. Die Route enthält einen Kommentar für die Logik zur Benutzererstellung, der durch die tatsächliche 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 Parameters:idvorgesehen. Wie die POST-Route enthält sie einen Kommentar für die Logik zur Benutzeraktualisierung; - DELETE-Route: Diese Route antwortet auf eine DELETE-Anfrage an die URL
/users/:id. Sie wird zum Löschen von Benutzer-Datensätzen anhand des Parameters:idverwendet. Wie bei den anderen Routen ist ein Kommentar für die Logik zur Benutzerlöschung enthalten.
Wenn Sie sich bezüglich der URL unsicher sind oder das Konzept überprüfen möchten, lesen Sie bitte den folgenden Artikel: URL vs URI vs URN
Umgang mit URL-Parametern
Fokus auf das Erstellen einer Route, die URL-Parameter verarbeitet. URL-Parameter sind dynamische Teile einer URL, die verwendet werden können, um Daten an den Server zu übermitteln. Funktionsweise dieses 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. Das bedeutet, dass beim Zugriff auf eine URL wie/users/123die Variablereq.params.idden Wert123enthält; - 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 wichtig, 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