Oman Middleware-ohjelmiston Luominen
Express.js:ssä voidaan luoda omia middleware-funktioita käyttämällä app.use()-metodia. Nämä funktiot ottavat kolme parametria: req (pyyntöobjekti), res (vastausobjekti) ja next (funktio, joka siirtää ohjauksen seuraavalle middlewarelle ketjussa). Oma middleware voidaan ottaa käyttöön joko globaalisti kaikille reiteille tai tietyille reiteille määrittelemällä reittipolku.
Oman middleware-funktion luominen
Seuraavassa on esimerkki omasta middleware-funktiosta, joka kirjaa jokaisen saapuvan pyynnön aikaleiman ja URL-osoitteen:
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.
});
Tässä esimerkissä oma middleware kirjaa jokaisen saapuvan pyynnön aikaleiman ja URL-osoitteen konsoliin. next()-funktiota kutsutaan, jotta ohjaus siirtyy seuraavalle middlewarelle käsittelyketjussa.
Käytännön esimerkki: Sisäänrakennetun ja oman middleware-funktion yhdistäminen
Seuraavassa on käytännön esimerkki, jossa käytetään Expressin sisäänrakennettua middlewarea JSON-datan jäsentämiseen ja luodaan oma middleware JSON-datan validointiin ennen jatkamista:
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.');
});
Tässä esimerkissä:
- Käytetään sisäänrakennettua middlewarea
express.json()saapuvan JSON-datan jäsentämiseen; - Luodaan oma middleware, joka tarkistaa, puuttuuko jäsennetty JSON-data tai onko se tyhjä. Jos näin on, lähetetään 400 Bad Request -vastaus virheilmoituksella. Jos data on kelvollista, kutsutaan
next()ja jatketaan reittiin; /api/data-reitti odottaa kelvollista JSON-dataa. Jos oma middleware validoi datan, reittikäsittelijä vastaanottaa sen ja lähettää onnistumisvastauksen.
Tämä esimerkki havainnollistaa, kuinka sekä sisäänrakennettua että räätälöityä middlewarea voidaan käyttää datan validointiin ennen kuin se saavuttaa reittikäsittelijät, varmistaen että data on odotetussa muodossa ennen jatkokäsittelyä.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Mahtavaa!
Completion arvosana parantunut arvoon 2.56
Oman Middleware-ohjelmiston Luominen
Pyyhkäise näyttääksesi valikon
Express.js:ssä voidaan luoda omia middleware-funktioita käyttämällä app.use()-metodia. Nämä funktiot ottavat kolme parametria: req (pyyntöobjekti), res (vastausobjekti) ja next (funktio, joka siirtää ohjauksen seuraavalle middlewarelle ketjussa). Oma middleware voidaan ottaa käyttöön joko globaalisti kaikille reiteille tai tietyille reiteille määrittelemällä reittipolku.
Oman middleware-funktion luominen
Seuraavassa on esimerkki omasta middleware-funktiosta, joka kirjaa jokaisen saapuvan pyynnön aikaleiman ja URL-osoitteen:
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.
});
Tässä esimerkissä oma middleware kirjaa jokaisen saapuvan pyynnön aikaleiman ja URL-osoitteen konsoliin. next()-funktiota kutsutaan, jotta ohjaus siirtyy seuraavalle middlewarelle käsittelyketjussa.
Käytännön esimerkki: Sisäänrakennetun ja oman middleware-funktion yhdistäminen
Seuraavassa on käytännön esimerkki, jossa käytetään Expressin sisäänrakennettua middlewarea JSON-datan jäsentämiseen ja luodaan oma middleware JSON-datan validointiin ennen jatkamista:
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.');
});
Tässä esimerkissä:
- Käytetään sisäänrakennettua middlewarea
express.json()saapuvan JSON-datan jäsentämiseen; - Luodaan oma middleware, joka tarkistaa, puuttuuko jäsennetty JSON-data tai onko se tyhjä. Jos näin on, lähetetään 400 Bad Request -vastaus virheilmoituksella. Jos data on kelvollista, kutsutaan
next()ja jatketaan reittiin; /api/data-reitti odottaa kelvollista JSON-dataa. Jos oma middleware validoi datan, reittikäsittelijä vastaanottaa sen ja lähettää onnistumisvastauksen.
Tämä esimerkki havainnollistaa, kuinka sekä sisäänrakennettua että räätälöityä middlewarea voidaan käyttää datan validointiin ennen kuin se saavuttaa reittikäsittelijät, varmistaen että data on odotetussa muodossa ennen jatkokäsittelyä.
Kiitos palautteestasi!