CodeBlanks Logo Icon CodeBlanks

app.post

app.post ile POST rotası tanımlamayı öğrenirsin.

app.post

app.post(yol, handler) bir POST rotası tanımlar. app.get gibi çalışır ama POST isteklerini dinler. POST, genellikle veri göndermek (form, API) için kullanılır.

POST isteğinin gövdesini (body) okumak için req.body kullanırsın. Ama Express varsayılan olarak gövdeyi ayrıştırmaz; app.use(express.json()) ile JSON ara katmanını eklemen gerekir. Örnek: app.post("/data", (req, res) => { res.json({ alindi: req.body.ad }); });. Burada req.body.ad ile gönderilen ad değerini alırsın. res.json bir nesneyi JSON yanıtı olarak gönderir; içerik türü otomatik application/json olur.

req.body ve express.json()

POST isteğinin gövdesi req.body ile okunur. Ama Express bunu varsayılan olarak ayrıştırmaz. JSON gövdesi için app.use(express.json()) ara katmanını eklersin.

Örnek: app.use(express.json()); app.post("/data", (req, res) => { console.log(req.body); res.json({ alindi: req.body.ad }); });. İstemci { "ad": "Ayşe" } gönderdiğinde req.body.ad Ayşe olur. express.json() ara katmanı, gelen JSON dizesini bir nesneye çevirip req.body'ye koyar. Bu olmadan req.body undefined olur. Ara katman (middleware), istek ve rota arasında çalışan bir fonksiyondur.

Uygulama POST rotası tanımla

express içe aktar ve app oluştur. app.use(express.json()) ile JSON ara katmanını ekle. app.post("/data", (req, res) => res.json({ alindi: req.body.ad })) ile POST rotası tanımla. Altındaki hazır kod sunucuyu başlatır ve { ad: "Ayşe" } gövdesiyle POST isteği atar.

Başlangıç kodu

index.js
// express içe aktar, app oluştur ve JSON ara katmanını ekle
// buraya yaz

// "/data" rotasına POST ile gelen adı al ve yanıt ver
// 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 app.post ne için kullanılır?

index.js
app.post("/data", handler)
  • GET isteklerini dinler
  • Sunucuyu kapatır
  • POST isteklerini dinler Doğru cevap
  • Modülü yükler

Açıklama: app.post POST isteklerini dinler.

2 Parçayı rolüne eşle

Kavram Anlamı
app.post POST rotası tanımlar
req.body Gövdeyi okur
express.json() Gövdeyi ayrıştırır
res.json JSON yanıtı gönderir

3 req.body erişimini tamamla

Soru
res.json({ alindi: req.____.ad });
Cevap
res.json({ alindi: req.body.ad });

Açıklama: req.body ile gövdeye erişilir.

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