A body-parser egy Node.js middleware modul, amely megkönnyíti a bejövő HTTP-kérések body részének kezelését. Ez a modul különösen hasznos akkor, ha az űrlapadatokat vagy JSON-tartalmat szeretnél fogadni és feldolgozni egy POST vagy PUT kérés során az Express-ben.
Miért van szükség a
body-parser-re?
Alapértelmezésben a Node.js és az Express nem képes a
kérések törzsét automatikusan feldolgozni. Ezért van szükség a body-parser
modulra, amely a kérések törzsét elérhetővé teszi a req.body objektumon
keresztül.
Telepítése: npm install body-parser
Példa a használatára:
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
// A body-parser használata JSON formátumú adatok
feldolgozásához
/* app.use(bodyParser.json()): Ez a middleware lehetővé
teszi, hogy JSON típusú kéréseket tudjunk feldolgozni, így például egy API-ban
érkező JSON adatok a req.body-ban lesznek elérhetők. */
app.use(bodyParser.json());
// A body-parser használata URL-kódolt adatok
feldolgozásához
/* app.use(bodyParser.urlencoded({ extended: true })): Ez az
opció az űrlapokon keresztül küldött URL-kódolt adatokat dolgozza fel (mint a
HTML form elemek application/x-www-form-urlencoded típusa). Az extended: true
opció lehetővé teszi, hogy összetett objektumokat (pl. beágyazott objektumokat)
is kezeljünk. */
app.use(bodyParser.urlencoded({ extended: true }));
// Példa POST kérésre
app.post('/submit', (req, res) => {
const name =
req.body.name;
const email =
req.body.email;
res.send(`Név:
${name}, Email: ${email}`);
});
// A szerver figyel a 3000-es porton
app.listen(3000, () => {
console.log('Szerver
fut a http://localhost:3000 címen');
});
Működés:
Ha egy POST kérés érkezik a /submit útvonalra, például egy
HTML űrlapból, a body-parser feldolgozza a kérést, és az adatokat a req.body
objektumban tárolja. Ezután az adatok hozzáférhetők a további feldolgozáshoz
vagy válaszként történő küldéshez.
Extended beállítás a
urlencoded metódusnál
extended: true: Lehetővé teszi, hogy összetett
adatstruktúrák, például beágyazott objektumok is kezelhetők legyenek (azaz
nemcsak sima string értékeket tudsz fogadni).
extended: false: Csak egyszerű key-value párokat enged
feldolgozni, például az alapvető URL-kódolt formákat.
Az express újabb verzióiban (pl. Express 4.x-től) a
body-parser bizonyos funkciói beépítésre kerültek az Express alapvető
részeként, így külön body-parser telepítése nem mindig szükséges, mivel
használhatod az Express saját beépített módszereit is:
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
vagyis nem kell külön telepíteni. Ezért nézzük meg a verzió számot.
Nincsenek megjegyzések:
Megjegyzés küldése