Aangepaste Middleware Maken
In Express.js kunnen aangepaste middlewarefuncties worden gemaakt met de methode app.use(). Deze functies nemen drie parameters: req (het request-object), res (het response-object) en next (een functie om de controle door te geven aan de volgende middleware in de keten). Aangepaste middleware kan globaal op alle routes worden toegepast of op specifieke routes door een routepad op te geven.
Aangepaste Middleware Maken
Hier volgt een eenvoudig voorbeeld van een aangepaste middlewarefunctie die de timestamp en URL van elk binnenkomend verzoek logt:
app.use((req, res, next) => {
const timestamp = new Date().toISOString();
const url = req.url;
console.log(`[${timestamp}] ${url}`);
next(); // Pass control to the next middleware.
});
In dit voorbeeld logt de aangepaste middleware de timestamp en URL van elk binnenkomend verzoek naar de console. De functie next() wordt aangeroepen om de controle door te geven aan de volgende middleware in de pipeline.
Praktijkvoorbeeld: Combineren van ingebouwde en aangepaste middleware
Hier volgt een praktisch voorbeeld waarin een ingebouwde Express-middleware wordt gebruikt om JSON-data te parseren, gevolgd door een aangepaste middleware om deze data te valideren voordat het proces verdergaat:
const express = require('express');
const app = express();
// Use built-in middleware to parse JSON data.
app.use(express.json());
// Custom middleware to validate JSON data.
app.use((req, res, next) => {
const jsonData = req.body;
if (!jsonData || Object.keys(jsonData).length === 0) {
// If the JSON data is missing or empty, send an error response.
return res.status(400).json({ error: 'Invalid JSON data' });
}
// Data is valid; proceed to the next middleware or route.
next();
});
// Route that expects valid JSON data.
app.post('/api/data', (req, res) => {
const jsonData = req.body;
res.status(200).json({ message: 'Data received', data: jsonData });
});
app.listen(3000, () => {
console.log('Server is running on port 3000.');
});
In dit voorbeeld:
- De ingebouwde middleware
express.json()wordt gebruikt om inkomende JSON-data te parseren; - Er wordt een aangepaste middleware gemaakt die controleert of de geparste JSON-data ontbreekt of leeg is. In dat geval wordt een 400 Bad Request-respons met een foutmelding verstuurd. Als de data geldig is, wordt
next()aangeroepen om door te gaan naar de route; - De
/api/data-route verwacht geldige JSON-data. Als de aangepaste middleware de data valideert, ontvangt de route handler deze en stuurt een succesrespons.
Dit voorbeeld toont aan hoe zowel ingebouwde als aangepaste middleware gebruikt kan worden om data te valideren voordat deze de route handlers bereikt, zodat de data het verwachte formaat heeft voordat verdere verwerking plaatsvindt.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Awesome!
Completion rate improved to 2.56
Aangepaste Middleware Maken
Veeg om het menu te tonen
In Express.js kunnen aangepaste middlewarefuncties worden gemaakt met de methode app.use(). Deze functies nemen drie parameters: req (het request-object), res (het response-object) en next (een functie om de controle door te geven aan de volgende middleware in de keten). Aangepaste middleware kan globaal op alle routes worden toegepast of op specifieke routes door een routepad op te geven.
Aangepaste Middleware Maken
Hier volgt een eenvoudig voorbeeld van een aangepaste middlewarefunctie die de timestamp en URL van elk binnenkomend verzoek logt:
app.use((req, res, next) => {
const timestamp = new Date().toISOString();
const url = req.url;
console.log(`[${timestamp}] ${url}`);
next(); // Pass control to the next middleware.
});
In dit voorbeeld logt de aangepaste middleware de timestamp en URL van elk binnenkomend verzoek naar de console. De functie next() wordt aangeroepen om de controle door te geven aan de volgende middleware in de pipeline.
Praktijkvoorbeeld: Combineren van ingebouwde en aangepaste middleware
Hier volgt een praktisch voorbeeld waarin een ingebouwde Express-middleware wordt gebruikt om JSON-data te parseren, gevolgd door een aangepaste middleware om deze data te valideren voordat het proces verdergaat:
const express = require('express');
const app = express();
// Use built-in middleware to parse JSON data.
app.use(express.json());
// Custom middleware to validate JSON data.
app.use((req, res, next) => {
const jsonData = req.body;
if (!jsonData || Object.keys(jsonData).length === 0) {
// If the JSON data is missing or empty, send an error response.
return res.status(400).json({ error: 'Invalid JSON data' });
}
// Data is valid; proceed to the next middleware or route.
next();
});
// Route that expects valid JSON data.
app.post('/api/data', (req, res) => {
const jsonData = req.body;
res.status(200).json({ message: 'Data received', data: jsonData });
});
app.listen(3000, () => {
console.log('Server is running on port 3000.');
});
In dit voorbeeld:
- De ingebouwde middleware
express.json()wordt gebruikt om inkomende JSON-data te parseren; - Er wordt een aangepaste middleware gemaakt die controleert of de geparste JSON-data ontbreekt of leeg is. In dat geval wordt een 400 Bad Request-respons met een foutmelding verstuurd. Als de data geldig is, wordt
next()aangeroepen om door te gaan naar de route; - De
/api/data-route verwacht geldige JSON-data. Als de aangepaste middleware de data valideert, ontvangt de route handler deze en stuurt een succesrespons.
Dit voorbeeld toont aan hoe zowel ingebouwde als aangepaste middleware gebruikt kan worden om data te valideren voordat deze de route handlers bereikt, zodat de data het verwachte formaat heeft voordat verdere verwerking plaatsvindt.
Bedankt voor je feedback!