Heim >Web-Frontend >js-Tutorial >Middleware in Express.js verstehen und implementieren
Express.js ist eines der beliebtesten Frameworks zum Erstellen von Webanwendungen mit Node.js. Es erleichtert die Erstellung von RESTful-APIs und ermöglicht Ihnen die modulare Strukturierung von Anwendungen. Eines der Hauptkonzepte in Express.js ist die Verwendung von Middlewares. In diesem Artikel werden wir verstehen, was Middleware ist, wie sie funktioniert und wie Sie Ihre eigene erstellen können.
Middlewares sind Funktionen, die Zugriff auf das Anforderungsobjekt (req), das Antwortobjekt (res) und die Funktion next() haben. Sie können das Anfrage- und/oder Antwortobjekt ändern und den Anfrage-Antwort-Zyklus steuern. Eine Middleware kann mehrere Dinge tun, wie zum Beispiel:
Die grundlegende Signatur einer Middleware in Express.js ist:
function middleware(req, res, next) { // Lógica do middleware next(); // Chama o próximo middleware }
In Express finden wir verschiedene Arten von Middleware:
Wenn eine Anfrage eingeht, durchläuft sie eine „Middleware-Kette“. Jede Middleware kann die Anfrage verarbeiten und am Ende ihrer Ausführung entscheiden, ob sie die nächste Middleware aufruft (mit der Funktion next()) oder die Antwort finalisiert.
const express = require('express'); const app = express(); // Middleware global app.use((req, res, next) => { console.log('Request Type:', req.method); next(); }); // Middleware específico para a rota /user app.use('/user', (req, res, next) => { console.log('Middleware para /user'); next(); }); app.get('/user', (req, res) => { res.send('Página do Usuário'); }); app.listen(3000, () => { console.log('Servidor rodando na porta 3000'); });
Zusätzlich zu der von Express oder Drittanbietern bereitgestellten Middleware können Sie Ihre eigene Middleware erstellen, um bestimmte Funktionen wie Authentifizierung, Protokollierung oder Datenmanipulation zu verwalten.
Beispiel einer einfachen Authentifizierungs-Middleware:
function autenticar(req, res, next) { const token = req.header('Authorization'); if (!token) { return res.status(401).send('Acesso negado. Token não fornecido.'); } try { // Lógica para validar o token next(); // Continua para o próximo middleware } catch (err) { res.status(400).send('Token inválido.'); } } app.use(autenticar); // Aplica o middleware para todas as rotas
Express ermöglicht auch die Verwendung von Middleware von Drittanbietern, die über npm installiert werden kann. Einige der beliebtesten sind:
Morgan installieren und verwenden:
npm install morgan
const morgan = require('morgan'); // Middleware de log app.use(morgan('tiny')); app.get('/', (req, res) => { res.send('Hello World'); });
Die Reihenfolge, in der Sie die Middlewares definieren, ist wichtig, da sie in der Reihenfolge ausgeführt werden, in der sie registriert sind. Wenn Sie beispielsweise Authentifizierungs-Middleware nach einer Route definieren, die eine Authentifizierung erfordert, wird sie für diese Route nicht ausgeführt.
app.use(express.json()); // Middleware para parsear JSON app.post('/secure-data', autenticar, (req, res) => { res.send('Acesso a dados seguros'); });
Wenn eine Middleware die Funktion next() nicht aufruft, unterbricht sie den Anfrage-Antwort-Zyklus. Dies kann in Fällen nützlich sein, in denen Sie die Anfrage innerhalb der Middleware selbst abschließen möchten, beispielsweise bei einer Authentifizierungsprüfung:
function autenticar(req, res, next) { if (!req.header('Authorization')) { return res.status(403).send('Não autorizado'); } next(); }
Middlewares sind ein wesentlicher Bestandteil beim Erstellen von Anwendungen mit Express.js und ermöglichen große Flexibilität und Modularität. Wenn Sie den Einsatz von Middleware beherrschen, können Sie Ihre APIs effizient strukturieren, Code wiederverwenden und Funktionen wie Authentifizierung, Sicherheit und Datenmanipulation auf einfache und skalierbare Weise hinzufügen.
Wenn Sie in Ihren Projekten noch keine benutzerdefinierte Middleware verwenden, beginnen Sie mit etwas Einfachem, wie einer Protokollierungs- oder Authentifizierungs-Middleware, und erleben Sie die Modularität und Flexibilität, die Express.js bietet!
Hat Ihnen der Artikel gefallen? Vergessen Sie nicht, es mit Ihren Entwicklerkollegen zu teilen!
Das obige ist der detaillierte Inhalt vonMiddleware in Express.js verstehen und implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!