Dieser Artikel befasst sich eingehend mit der Erstellung von Websites mit Node.js und Express.js. Express.js ist ein wesentliches Framework zum Erstellen robuster und skalierbarer Webanwendungen auf Node.js. Der heutige Schwerpunkt liegt auf Routing, Middleware und Template Engines und Cookie-Sitzungen.
Die app.use(callback)-Methode in Express.js wird zum Mounten von Middleware-Funktionen verwendet. Diese Middleware wird für jede an Ihre Anwendung gestellte Anfrage ausgeführt, unabhängig von der HTTP-Methode oder URL.
z.B.)In diesem Beispiel läuft die Middleware bei jeder eingehenden Anfrage und protokolliert eine Nachricht an der Konsole.
const express = require('express'); const app = express(); app.use((req, res, next) => { console.log('Middleware running for every request.'); next(); });
Mit dieser Methode können Sie Middleware an einer bestimmten Route bereitstellen. Die Middleware wird nur ausgeführt, wenn die Anfrage mit dem angegebenen Pfad übereinstimmt.
z. B.) In diesem Beispiel wird die Middleware nur für Routen ausgelöst, die mit /users beginnen.
app.use('/users', (req, res, next) => { console.log('Middleware only for /users route.'); next(); });
Mit diesen Methoden können Sie bestimmte HTTP-Methoden (GET, POST, PUT, DELETE usw.) auf einer bestimmten Route verarbeiten. Hier definieren Sie das Verhalten Ihrer Webanwendung.
z. B.) Jede Methode verarbeitet einen anderen Teil der CRUD-Vorgänge (Erstellen, Lesen, Aktualisieren, Löschen) für die Benutzerverwaltung.
app.get('/users', (req, ress) => { res.send('Fetching all users'); }); app.post('/users', (req, res) => { res.send('Creating a new user'); }); app.put('/users/:id', (req, res) => { res.send(`Updating user with ID: ${req.params.id}`); }); app.delete('/users/:id', (req, res) => { res.send('Deleting user with ID: ${req.params.id}`); });
Middleware-Funktionen in Express.js haben Zugriff auf die Anforderungsobjekte (req) und Antwortobjekte (res) und können Code ausführen, Änderungen vornehmen oder den Anforderungs-Antwort-Zyklus beenden.
z. B.) In diesem Beispiel fügt Middleware benutzerdefinierte Daten zum Anforderungsobjekt hinzu und der Routenhandler greift darauf zu.
app.use((req, res, next) => { req.customData = 'Some custom data'; next(); }); app.get('/', (req, res) => { res.send(`Data from middleware: ${req.customData}`); });
Im obigen Beispiel verwende ich next(), um die Kontrolle an die nächste Middleware oder den nächsten Routenhandler zu übergeben. Ohne den Aufruf von next() würde die Anfrage hängen bleiben, da der Zyklus nicht vorwärts gehen würde.
z.B.) Dadurch wird sichergestellt, dass jedes Teil der Middleware die Kontrolle an das nächste in der Kette weitergeben kann.
const express = require('express'); const app = express(); app.use((req, res, next) => { console.log('Middleware running for every request.'); next(); });
Express Router ist ein großartiges Tool zum Organisieren von Routen in modularen Anwendungen. Es hilft Ihnen, Ihre Routen in kleinere, überschaubare Teile zu unterteilen.
z. B.) In diesem Beispiel ist der Router unter /users gemountet und Anfragen an /users/profile werden von der Route des Routers verarbeitet.
app.use('/users', (req, res, next) => { console.log('Middleware only for /users route.'); next(); });
Der Umgang mit Sitzungen und Cookies ist für die Verwaltung der Benutzerauthentifizierung und des Benutzerstatus von entscheidender Bedeutung. Express.js stellt Middleware zur Verwaltung von Sitzungsdaten bereit.
z.B.) Mit Express-Session initialisiere ich eine Sitzung und lege Sitzungsdaten fest, auf die während der gesamten Sitzung des Benutzers zugegriffen werden kann.
app.get('/users', (req, ress) => { res.send('Fetching all users'); }); app.post('/users', (req, res) => { res.send('Creating a new user'); }); app.put('/users/:id', (req, res) => { res.send(`Updating user with ID: ${req.params.id}`); }); app.delete('/users/:id', (req, res) => { res.send('Deleting user with ID: ${req.params.id}`); });
Beim Rendern von Ansichten mit Template-Engines können Sie Variablen übergeben, um Inhalte dynamisch zu generieren. In EJS können Sie beispielsweise Variablen zum Rendern an Ihre Ansichten übergeben.
z.B.)In diesem Beispiel übergebe ich die Titel- und Nachrichtenvariablen an die EJS-Vorlage.
app.use((req, res, next) => { req.customData = 'Some custom data'; next(); }); app.get('/', (req, res) => { res.send(`Data from middleware: ${req.customData}`); });
EJS ist eine beliebte Template-Engine, mit der Sie HTML schreiben und JavaScript direkt in die HTML-Struktur einbetten können. Es ist einfach, aber leistungsstark und lässt sich gut in Express.js für dynamische Webseiten integrieren.
z.B.) Das <%= %> Die Syntax wird verwendet, um JavaScript-Ausdrücke in den HTML-Code einzufügen.
app.use((req, res, next) => { console.log('First middleware'); next(); }); app.use((req, res, next) => { console.log('Second middlware'); });
Das obige ist der detaillierte Inhalt vonErstellen einer Website mit Node.js und Express.js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!