Aangepaste Middleware Maken
In Express.js kunnen we aangepaste middleware-functies maken met behulp van 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 is een eenvoudig voorbeeld van een aangepaste middleware-functie 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: Gecombineerd Gebruik van Ingebouwde en Aangepaste Middleware
Hier is een praktisch voorbeeld waarbij we een ingebouwde Express-middleware gebruiken om JSON-data te parsen en vervolgens een aangepaste middleware maken om die data te valideren voordat we verder gaan:
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:
- We gebruiken de ingebouwde middleware
express.json()om binnenkomende JSON-data te parsen; - We maken een aangepaste middleware die controleert of de geparste JSON-data ontbreekt of leeg is. Als dat het geval is, wordt een 400 Bad Request-respons met een foutmelding verzonden. Als de data geldig is, wordt
next()aangeroepen om door te gaan naar de route; - De route
/api/dataverwacht 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 gegevens te valideren voordat deze onze routehandlers bereiken, zodat de gegevens het verwachte formaat hebben voordat ze verder worden verwerkt.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Geweldig!
Completion tarief verbeterd naar 2.56
Aangepaste Middleware Maken
Veeg om het menu te tonen
In Express.js kunnen we aangepaste middleware-functies maken met behulp van 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 is een eenvoudig voorbeeld van een aangepaste middleware-functie 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: Gecombineerd Gebruik van Ingebouwde en Aangepaste Middleware
Hier is een praktisch voorbeeld waarbij we een ingebouwde Express-middleware gebruiken om JSON-data te parsen en vervolgens een aangepaste middleware maken om die data te valideren voordat we verder gaan:
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:
- We gebruiken de ingebouwde middleware
express.json()om binnenkomende JSON-data te parsen; - We maken een aangepaste middleware die controleert of de geparste JSON-data ontbreekt of leeg is. Als dat het geval is, wordt een 400 Bad Request-respons met een foutmelding verzonden. Als de data geldig is, wordt
next()aangeroepen om door te gaan naar de route; - De route
/api/dataverwacht 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 gegevens te valideren voordat deze onze routehandlers bereiken, zodat de gegevens het verwachte formaat hebben voordat ze verder worden verwerkt.
Bedankt voor je feedback!