Academy › 🔌 Backend & API › Sunucu Nedir?
Metin değil, veri döndür: res.json
🔌 Sunucu Nedir? bölümü · Code Quest Backend & API parkuru
res.send('ayakta') insana hitap eder. Ama API'nin karşısında genelde insan değil program vardır: bir mobil uygulama, bir web sayfası, başka bir sunucu. Programların anladığı ortak dil ise JSON'dur.
Bunun için res.json(...) kullanılır. Verdiğin JavaScript nesnesini metne çevirir ve cevaba "bu bir JSON" etiketini (content-type: application/json) ekler:
const app = express(); app.get('/oyunlar/3', (req, res) => { res.json({ id: 3, ad: 'Gölge Avcısı', fiyat: 249 }); }); send('GET', '/oyunlar/3');
→ GET /oyunlar/3 ← 200 OK content-type: application/json { "id": 3, "ad": "Gölge Avcısı", "fiyat": 249 }
Fark iki yerde: cevabın content-type başlığı ve gövdenin biçimi. Bu etiket sayesinde istemci "gelen şey metin değil, ayrıştırılabilir veri" olduğunu anlar.
Bir dizi de döndürebilirsin — API'lerde liste döndürmek en sık yapılan iştir:
const app = express(); app.get('/turler', (req, res) => { res.json(store.turler); }); send('GET', '/turler');
→ GET /turler ← 200 OK content-type: application/json [ { "id": 1, "ad": "Aksiyon" }, { "id": 2, "ad": "Bulmaca" }, { "id": 3, "ad": "Yarış" }, { "id": 4, "ad": "Strateji" }, { "id": 5, "ad": "Macera" } ]
İstersen veriyi işleyip döndürebilirsin; sonuçta bu sıradan bir JavaScript fonksiyonu:
const app = express(); app.get('/oyunlar/adlar', (req, res) => { const adlar = store.oyunlar.map(o => o.ad); res.json({ toplam: adlar.length, adlar: adlar.slice(0, 3) }); }); send('GET', '/oyunlar/adlar');
→ GET /oyunlar/adlar ← 200 OK content-type: application/json { "toplam": 12, "adlar": [ "Neon Drift", "Piksel Kale", "Gölge Avcısı" ] }
res.json olmalıdır.Kendini test et
3000 sayısı neyi ifade eder?
Sunucunun saniyede kaç istek karşılayacağınıSunucunun dinlediği port numarasınıCevabın milisaniye cinsinden süresini
Cevabı gör
Cevap: Sunucunun dinlediği port numarasını
Port, makinedeki kapı numarasıdır. localhost:3000 adresindeki 3000 tam olarak budur.
Bu kodun çıktısı ne olur?
const app = express();
app.get('/sayi', (req, res) => res.json({ toplam: store.oyunlar.length }));
send('GET', '/sayi');Cevabı gör
Çıktı:
→ GET /sayi
← 200 OK
content-type: application/json
{
"toplam": 12
}store.oyunlar 12 kayıt içerir; res.json bunu JSON gövdesi olarak gönderir ve content-type'ı application/json yapar.