CRUD rotaları
- Node.js kursu
- Orta seviye
- Ders 67/116
- 6 dk
CRUD (Create, Read, Update, Delete) rotalarını yazarsın.
CRUD rotaları
Üçüncü ders CRUD rotaları: Create (oluştur), Read (oku), Update (güncelle), Delete (sil). Biz şimdilik Read ve Create'i yapacağız. Read için app.get("/books", ...), Create için app.post("/books", ...) kullanırsın.
GET rotası res.json(books) ile tüm kitapları döndürür. POST rotası req.body'den yeni kitabı alır, books.push() ile ekler ve res.status(201).json(req.body) ile oluşturuldu koduyla geri verir. 201 “Oluşturuldu” anlamına gelir. app.use(express.json()) ise gelen JSON gövdelerini otomatik ayrıştırır; bunu başlangıç koduna ekledik. Böylece API artık veri okuyup yazabilir.
POST ile veri ekleme
POST rotası yeni veri eklemek için kullanılır. app.post("/books", (req, res) => { ... }) ile tanımlanır. Gövdeden gelen veri req.body'de bulunur.
Önce app.use(express.json()) çağrılmış olmalı; aksi halde req.body undefined kalır. Bu middleware, JSON gövdesini otomatik ayrıştırır. Ardından books.push(req.body) ile yeni kitabı dizine eklersin. res.status(201) ile “Oluşturuldu” durum kodunu verirsin; bu, REST API'lerde yaratma işlemleri için standarttır. Son olarak .json(req.body) ile eklenen kitabı yanıtta döndürürsün. Böylece istemci, verinin eklendiğini doğrular.
Uygulama GET ve POST /books rotalarını tanımla
İki rota tanımla. app.get("/books", ...) ile books dizisini res.json ile döndür. app.post("/books", ...) ile req.body'den kitap ekle ve res.status(201).json(...) ile yanıt ver. Self-request hazır.
Başlangıç kodu
const books = [];
books.push({ id: 1, title: "Node.js" });
const express = require("express");
const app = express();
app.use(express.json());
// GET /books rotası — books dizisini JSON olarak döndür
// buraya yaz
// POST /books rotası — req.body'den kitap ekle, 201 ile döndür
// buraya yaz
// Self-request (hazır kod)
const server = app.listen(3000, () => {
const http = require("http");
http.get("http://localhost:3000/books", (res) => {
let body = "";
res.on("data", (c) => body += c);
res.on("end", () => { console.log(body); server.close(); });
});
});Örnek çözüm
app.get("/books", (req, res) => {
res.json(books);
});
app.post("/books", (req, res) => {
books.push(req.body);
res.status(201).json(req.body);
});Beklenen çıktı
[{"id":1,"title":"Node.js"}]
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Parçayı rolüne eşle
| Kavram | Anlamı |
|---|---|
app.get |
Veri okur |
app.post |
Veri yazar |
req.body |
Gelen gövde |
res.status(201) |
Oluşturuldu kodu |
2 POST /books rotasında yeni kitap nereden okunur?
app.post("/books", (req, res) => ...)- req.params
- req.query
- req.body Doğru cevap
- req.url
Açıklama: Gövde verisi express.json() ile req.body'ye ayrıştırılır.
3 POST rotasını tamamla
app.____("/books", (req, res) => { books.push(req.body); res.status(201).json(req.body); });
app.post("/books", (req, res) => { books.push(req.body); res.status(201).json(req.body); });
Açıklama: app.post ile yeni veri ekleme rotası tanımlanır.