Node.js
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.
Örnek çözümü göster
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();
});
Kendini test et
-
app.post ne için kullanılır?
app.post("/data", handler)
- GET isteklerini dinler
- Sunucuyu kapatır
- POST isteklerini dinler
- Modülü yükler
Cevabı göster
POST isteklerini dinler — app.post POST isteklerini dinler.
-
Parçayı rolüne eşle
- 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
-
req.body erişimini tamamla
res.json({ alindi: req.____.ad });
Cevabı göster
res.json({ alindi: req.body.ad });
Sıradaki ders: app.listen