Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Oman Middleware-komponentin Luominen | Verkkosovellusten Kehittäminen Express.js:llä
Backend-kehitys Node.js:llä ja Express.js:llä

bookOman Middleware-komponentin 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). Oma middleware voidaan ottaa käyttöön joko kaikille reiteille globaalisti tai tietyille reiteille määrittelemällä reittipolku.

Oman middleware-funktion luominen

Seuraavassa 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 käsittelyketjussa.

Käytännön esimerkki: Sisäänrakennetun ja oman middleware-toiminnon yhdistäminen

Tässä on käytännön esimerkki, jossa käytetään Expressin sisäänrakennettua middleware-toimintoa JSON-datan jäsentämiseen ja luodaan oma middleware-toiminto datan validointiin ennen jatkokäsittelyä:

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 middleware-toimintoa 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 ja virheilmoitus. Jos data on validia, kutsutaan next() ja siirrytään reittiin;
  • /api/data-reitti odottaa validia JSON-dataa. Jos oma middleware validoi datan, reittikäsittelijä vastaanottaa sen ja palauttaa onnistumisvastauksen.

Tämä esimerkki havainnollistaa, kuinka sekä sisäänrakennettuja että omia middleware-toimintoja voidaan käyttää datan validointiin ennen kuin se saavuttaa reittikäsittelijät, varmistaen että data on oikeassa muodossa ennen jatkokäsittelyä.

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 9

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Awesome!

Completion rate improved to 2.56

bookOman Middleware-komponentin 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). Oma middleware voidaan ottaa käyttöön joko kaikille reiteille globaalisti tai tietyille reiteille määrittelemällä reittipolku.

Oman middleware-funktion luominen

Seuraavassa 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 käsittelyketjussa.

Käytännön esimerkki: Sisäänrakennetun ja oman middleware-toiminnon yhdistäminen

Tässä on käytännön esimerkki, jossa käytetään Expressin sisäänrakennettua middleware-toimintoa JSON-datan jäsentämiseen ja luodaan oma middleware-toiminto datan validointiin ennen jatkokäsittelyä:

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 middleware-toimintoa 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 ja virheilmoitus. Jos data on validia, kutsutaan next() ja siirrytään reittiin;
  • /api/data-reitti odottaa validia JSON-dataa. Jos oma middleware validoi datan, reittikäsittelijä vastaanottaa sen ja palauttaa onnistumisvastauksen.

Tämä esimerkki havainnollistaa, kuinka sekä sisäänrakennettuja että omia middleware-toimintoja voidaan käyttää datan validointiin ennen kuin se saavuttaa reittikäsittelijät, varmistaen että data on oikeassa muodossa ennen jatkokäsittelyä.

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 9
some-alt