Oprettelse af Brugerdefineret Middleware
I Express.js kan der oprettes brugerdefinerede middleware-funktioner ved hjælp af app.use()-metoden. Disse funktioner tager tre parametre: req (anmodningsobjektet), res (svarobjektet) og next (en funktion til at overføre kontrollen til den næste middleware i kæden). Brugerdefineret middleware kan anvendes globalt på alle ruter eller på specifikke ruter ved at angive en rute-sti.
Oprettelse af brugerdefineret middleware
Her er et grundlæggende eksempel på en brugerdefineret middleware-funktion, der logger tidsstemplet og URL'en for hver indkommende anmodning:
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.
});
I dette eksempel logger den brugerdefinerede middleware tidsstemplet og URL'en for hver indkommende anmodning til konsollen. Funktionen next() kaldes for at overføre kontrollen til den næste middleware i rækken.
Virkelighedsnært eksempel: Kombinering af indbygget og brugerdefineret middleware
Her er et praktisk eksempel, hvor vi bruger en indbygget Express-middleware til at parse JSON-data og derefter opretter en brugerdefineret middleware til at validere disse data, før vi fortsætter:
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.');
});
I dette eksempel:
- Vi bruger den indbyggede middleware
express.json()til at parse indkommende JSON-data; - Vi opretter en brugerdefineret middleware, der kontrollerer, om de parset JSON-data mangler eller er tomme. Hvis det er tilfældet, sendes et 400 Bad Request-svar med en fejlmeddelelse. Hvis dataene er gyldige, kaldes
next()for at fortsætte til ruten; - Ruten
/api/dataforventer gyldige JSON-data. Hvis den brugerdefinerede middleware validerer dataene, modtager route-handleren dem og sender et succes-svar.
Dette eksempel demonstrerer, hvordan vi kan bruge både indbygget og brugerdefineret middleware til at validere data, før de når vores route-handlere, hvilket sikrer, at dataene har det forventede format, inden de behandles yderligere.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Awesome!
Completion rate improved to 2.56
Oprettelse af Brugerdefineret Middleware
Stryg for at vise menuen
I Express.js kan der oprettes brugerdefinerede middleware-funktioner ved hjælp af app.use()-metoden. Disse funktioner tager tre parametre: req (anmodningsobjektet), res (svarobjektet) og next (en funktion til at overføre kontrollen til den næste middleware i kæden). Brugerdefineret middleware kan anvendes globalt på alle ruter eller på specifikke ruter ved at angive en rute-sti.
Oprettelse af brugerdefineret middleware
Her er et grundlæggende eksempel på en brugerdefineret middleware-funktion, der logger tidsstemplet og URL'en for hver indkommende anmodning:
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.
});
I dette eksempel logger den brugerdefinerede middleware tidsstemplet og URL'en for hver indkommende anmodning til konsollen. Funktionen next() kaldes for at overføre kontrollen til den næste middleware i rækken.
Virkelighedsnært eksempel: Kombinering af indbygget og brugerdefineret middleware
Her er et praktisk eksempel, hvor vi bruger en indbygget Express-middleware til at parse JSON-data og derefter opretter en brugerdefineret middleware til at validere disse data, før vi fortsætter:
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.');
});
I dette eksempel:
- Vi bruger den indbyggede middleware
express.json()til at parse indkommende JSON-data; - Vi opretter en brugerdefineret middleware, der kontrollerer, om de parset JSON-data mangler eller er tomme. Hvis det er tilfældet, sendes et 400 Bad Request-svar med en fejlmeddelelse. Hvis dataene er gyldige, kaldes
next()for at fortsætte til ruten; - Ruten
/api/dataforventer gyldige JSON-data. Hvis den brugerdefinerede middleware validerer dataene, modtager route-handleren dem og sender et succes-svar.
Dette eksempel demonstrerer, hvordan vi kan bruge både indbygget og brugerdefineret middleware til at validere data, før de når vores route-handlere, hvilket sikrer, at dataene har det forventede format, inden de behandles yderligere.
Tak for dine kommentarer!