Lage Egendefinert Mellomvare
I Express.js kan vi lage egendefinerte mellomvarefunksjoner ved å bruke app.use()-metoden. Disse funksjonene tar tre parametere: req (forespørselsobjektet), res (responsobjektet) og next (en funksjon for å sende kontrollen videre til neste mellomvare i kjeden). Egendefinert mellomvare kan brukes globalt på alle ruter eller på bestemte ruter ved å spesifisere en rutevei.
Lage egendefinert mellomvare
Her er et grunnleggende eksempel på en egendefinert mellomvarefunksjon som logger tidsstempel og URL for hver innkommende forespørsel:
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 eksemplet logger den egendefinerte mellomvaren tidsstempelet og URL-en for hver innkommende forespørsel til konsollen. next()-funksjonen kalles for å sende kontrollen videre til neste mellomvare i kjeden.
Virkelig eksempel: Kombinere innebygd og egendefinert mellomvare
Her er et praktisk eksempel hvor vi bruker en innebygd Express-mellomvare for å tolke JSON-data, og deretter lager en egendefinert mellomvare for å validere disse dataene før vi går videre:
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 eksempelet:
- Vi bruker den innebygde mellomvaren
express.json()for å tolke innkommende JSON-data; - Vi lager en egendefinert mellomvare som sjekker om de tolkede JSON-dataene mangler eller er tomme. Hvis de gjør det, sendes et 400 Bad Request-svar med en feilmelding. Hvis dataene er gyldige, kalles
next()for å gå videre til ruten; - Ruten
/api/dataforventer gyldige JSON-data. Hvis den egendefinerte mellomvaren validerer dataene, mottar rutehåndtereren dem og sender et suksessvar.
Dette eksempelet viser hvordan vi kan bruke både innebygd og egendefinert mellomvare for å validere data før de når rutehåndtererne våre, og sikrer at dataene har forventet format før videre behandling.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Awesome!
Completion rate improved to 2.56
Lage Egendefinert Mellomvare
Sveip for å vise menyen
I Express.js kan vi lage egendefinerte mellomvarefunksjoner ved å bruke app.use()-metoden. Disse funksjonene tar tre parametere: req (forespørselsobjektet), res (responsobjektet) og next (en funksjon for å sende kontrollen videre til neste mellomvare i kjeden). Egendefinert mellomvare kan brukes globalt på alle ruter eller på bestemte ruter ved å spesifisere en rutevei.
Lage egendefinert mellomvare
Her er et grunnleggende eksempel på en egendefinert mellomvarefunksjon som logger tidsstempel og URL for hver innkommende forespørsel:
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 eksemplet logger den egendefinerte mellomvaren tidsstempelet og URL-en for hver innkommende forespørsel til konsollen. next()-funksjonen kalles for å sende kontrollen videre til neste mellomvare i kjeden.
Virkelig eksempel: Kombinere innebygd og egendefinert mellomvare
Her er et praktisk eksempel hvor vi bruker en innebygd Express-mellomvare for å tolke JSON-data, og deretter lager en egendefinert mellomvare for å validere disse dataene før vi går videre:
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 eksempelet:
- Vi bruker den innebygde mellomvaren
express.json()for å tolke innkommende JSON-data; - Vi lager en egendefinert mellomvare som sjekker om de tolkede JSON-dataene mangler eller er tomme. Hvis de gjør det, sendes et 400 Bad Request-svar med en feilmelding. Hvis dataene er gyldige, kalles
next()for å gå videre til ruten; - Ruten
/api/dataforventer gyldige JSON-data. Hvis den egendefinerte mellomvaren validerer dataene, mottar rutehåndtereren dem og sender et suksessvar.
Dette eksempelet viser hvordan vi kan bruke både innebygd og egendefinert mellomvare for å validere data før de når rutehåndtererne våre, og sikrer at dataene har forventet format før videre behandling.
Takk for tilbakemeldingene dine!