CodeBlanks Logo Icon CodeBlanks

Body parser

express.json() ile body parser middleware öğrenirsin.

Body parser: express.json()

express.json() Express'e yerleşik bir body parser middleware'ıdır. Gelen JSON gövdeleri otomatik ayrıştırır ve req.body'ye koyar. Kullanım: app.use(express.json());.

Bu middleware kaydedildikten sonra, POST rotalarında req.body ile ayrıştırılan JSON verisine erişilir. Örnek: app.post("/data", (req, res) => { res.json({ alindi: req.body.ad }); });. İstemci { "ad": "Ayşe" } gönderirse req.body.ad "Ayşe" olur. express.json() kaydedilmezse req.body undefined kalır. Bu yüzden body parser, app.post rotalarından önce kaydedilmelidir.

req.body ile veri okuma

express.json() kaydedildikten sonra, her POST isteğinin gövdesi req.body'de ayrıştırılmış JSON olarak bulunur. Örnek: istemci { "ad": "Ayşe", "yas": 30 } gönderirse, req.body.ad "Ayşe" ve req.body.yas 30 olur.

Bu, API'lerde veri almanın temel yoludur. İstemci Content-Type: application/json başlığıyla JSON gönderir; Express express.json() ile bunu ayrıştırır. Yanıtta res.json(veri) kullanırsan Express otomatik olarak Content-Type: application/json başlığını ekler ve nesneyi JSON'a çevirir. Böylece istek ve yanıt aynı biçimde JSON olarak akar.

Uygulama Body parser ile POST rotası yaz

app.use(express.json()) ile body parser ekle. app.post("/data", (req, res) => { res.json({ alindi: req.body.ad }); }) rotası ekle. İstemci { ad: "Ayşe" } gönderir. Sunucu kendiliğinden kapanır.

Başlangıç kodu

index.js
const express = require("express");
const app = express();

// JSON ayrıştırıcı middleware ekle
// POST rotasında istek gövdesinden veri oku, yanıtla
// buraya yaz

const server = app.listen(3000, () => {
  const http = require("http");
  const opts = { hostname: "localhost", port: 3000, path: "/data", method: "POST", headers: { "Content-Type": "application/json" } };
  const r = http.request(opts, (res) => {
    let body = "";
    res.on("data", (c) => body += c);
    res.on("end", () => { console.log("Yanıt: " + body); server.close(); });
  });
  r.write(JSON.stringify({ ad: "Ayşe" }));
  r.end();
});

Örnek çözüm

index.js
const express = require("express");
const app = express();

app.use(express.json());
app.post("/data", (req, res) => {
  res.json({ alindi: req.body.ad });
});

const server = app.listen(3000, () => {
  const http = require("http");
  const opts = { hostname: "localhost", port: 3000, path: "/data", method: "POST", headers: { "Content-Type": "application/json" } };
  const r = http.request(opts, (res) => {
    let body = "";
    res.on("data", (c) => body += c);
    res.on("end", () => { console.log("Yanıt: " + body); server.close(); });
  });
  r.write(JSON.stringify({ ad: "Ayşe" }));
  r.end();
});

Beklenen çıktı

Yanıt: {"alindi":"Ayşe"}

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 express.json çağrısını tamamla

Soru
app.use(express.____());
Cevap
app.use(express.json());

Açıklama: express.json() JSON gövdeleri ayrıştırır.

2 Parçayı rolüne eşle

Kavram Anlamı
express.json() JSON gövde ayrıştırır
req.body Ayrıştırılmış veri
app.post POST rotası tanımlar
res.json() JSON yanıt gönderir

3 express.json() ne yapar?

index.js
app.use(express.json())
  • HTML şablonu render eder
  • JSON gövdeleri req.body'ye ayrıştırır Doğru cevap
  • Statik dosya sunar
  • URL yönlendirir

Açıklama: express.json() JSON gövdeleri ayrıştırır.

Orta seviye bölümündeki tüm dersler