Oman Middleware-toiminnon 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, jolla siirretään ohjaus seuraavalle middlewarelle ketjussa). Omat middlewaret voidaan ottaa käyttöön joko kaikille reiteille globaalisti tai tietyille reiteille määrittämällä reittipolku.
Oman middleware-funktion luominen
Tässä on yksinkertainen 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 ketjussa.
Käytännön esimerkki: Sisäänrakennetun ja oman middleware-funktion yhdistäminen
Tässä käytännön esimerkissä käytetään Expressin sisäänrakennettua middlewarea JSON-datan jäsentämiseen ja luodaan oma middleware, joka validoi datan 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, palautetaan 400 Bad Request -vastaus virheilmoituksella. Jos data on validia, kutsutaan
next()ja jatketaan reittiin; /api/data-reitti odottaa validia JSON-dataa. Jos oma middleware validoi datan, reittikäsittelijä vastaanottaa sen ja palauttaa onnistumisvastauksen.
-
Rivi 1: tuo Express.js-kehyksen;
-
Rivi 2: luo Express-sovellusinstanssin kutsumalla
express(). Tuloksena saatuapp-objekti toimii reittien, middlewarejen ja HTTP-pyyntöjen käsittelyn määrittelyssä; -
Rivi 5: ottaa käyttöön sisäänrakennetun
express.json()-middleware-komponentin. Tämä middleware jäsentää automaattisesti saapuvat JSON-pyynnön rungot ja tekee datan saatavillereq.body-kentän kautta; -
Rivit 8-18: määrittelevät oman middleware-komponentin, jota käytetään saapuvan JSON-datan validointiin;
-
tarkistaa, sisältääkö
req.bodydataa;- palauttaa
400 Bad Request-vastauksen, jos pyyntörunko puuttuu tai on tyhjä; - kutsuu
next(), jos JSON-data on validia, ja jatkaa seuraavaan middlewareen tai reittikäsittelijään;
- palauttaa
-
Rivit 21-24: määrittelevät
POST-reitin osoitteeseen/api/data;- hakee lähetetyn JSON-datan
req.body-kentästä; - palauttaa
200 OK-vastauksen, joka sisältää vahvistusviestin ja vastaanotetun datan;
- hakee lähetetyn JSON-datan
-
Rivit 26-28: käynnistävät Express-sovelluksen ja aloittavat pyyntöjen kuuntelun portissa
3000.
Tämä esimerkki havainnollistaa, kuinka sekä sisäänrakennettuja että omia middleware-komponentteja voidaan käyttää datan validointiin ennen kuin se saavuttaa reittikäsittelijät. Näin varmistetaan, 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
Oman Middleware-toiminnon 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, jolla siirretään ohjaus seuraavalle middlewarelle ketjussa). Omat middlewaret voidaan ottaa käyttöön joko kaikille reiteille globaalisti tai tietyille reiteille määrittämällä reittipolku.
Oman middleware-funktion luominen
Tässä on yksinkertainen 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 ketjussa.
Käytännön esimerkki: Sisäänrakennetun ja oman middleware-funktion yhdistäminen
Tässä käytännön esimerkissä käytetään Expressin sisäänrakennettua middlewarea JSON-datan jäsentämiseen ja luodaan oma middleware, joka validoi datan 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, palautetaan 400 Bad Request -vastaus virheilmoituksella. Jos data on validia, kutsutaan
next()ja jatketaan reittiin; /api/data-reitti odottaa validia JSON-dataa. Jos oma middleware validoi datan, reittikäsittelijä vastaanottaa sen ja palauttaa onnistumisvastauksen.
-
Rivi 1: tuo Express.js-kehyksen;
-
Rivi 2: luo Express-sovellusinstanssin kutsumalla
express(). Tuloksena saatuapp-objekti toimii reittien, middlewarejen ja HTTP-pyyntöjen käsittelyn määrittelyssä; -
Rivi 5: ottaa käyttöön sisäänrakennetun
express.json()-middleware-komponentin. Tämä middleware jäsentää automaattisesti saapuvat JSON-pyynnön rungot ja tekee datan saatavillereq.body-kentän kautta; -
Rivit 8-18: määrittelevät oman middleware-komponentin, jota käytetään saapuvan JSON-datan validointiin;
-
tarkistaa, sisältääkö
req.bodydataa;- palauttaa
400 Bad Request-vastauksen, jos pyyntörunko puuttuu tai on tyhjä; - kutsuu
next(), jos JSON-data on validia, ja jatkaa seuraavaan middlewareen tai reittikäsittelijään;
- palauttaa
-
Rivit 21-24: määrittelevät
POST-reitin osoitteeseen/api/data;- hakee lähetetyn JSON-datan
req.body-kentästä; - palauttaa
200 OK-vastauksen, joka sisältää vahvistusviestin ja vastaanotetun datan;
- hakee lähetetyn JSON-datan
-
Rivit 26-28: käynnistävät Express-sovelluksen ja aloittavat pyyntöjen kuuntelun portissa
3000.
Tämä esimerkki havainnollistaa, kuinka sekä sisäänrakennettuja että omia middleware-komponentteja voidaan käyttää datan validointiin ennen kuin se saavuttaa reittikäsittelijät. Näin varmistetaan, että data on odotetussa muodossa ennen jatkokäsittelyä.
Kiitos palautteestasi!