Academy › 🔌 Backend & API › Sunucu Nedir?
Birden çok uç nokta
🔌 Sunucu Nedir? bölümü · Code Quest Backend & API parkuru
Gerçek bir sunucuda tek yol olmaz. Her yol, dış dünyaya açılan bir kapıdır ve bu kapılara uç nokta (endpoint) denir. Piksel Market'in ilk üç kapısını açalım:
const app = express(); app.get('/', (req, res) => { res.send('Piksel Market API'); }); app.get('/saglik', (req, res) => { res.send('ayakta'); }); app.get('/oyunlar/sayi', (req, res) => { res.send('Toplam ' + store.oyunlar.length + ' oyun'); }); send('GET', '/'); send('GET', '/saglik'); send('GET', '/oyunlar/sayi');
→ GET / ← 200 OK content-type: text/html; charset=utf-8 Piksel Market API → GET /saglik ← 200 OK content-type: text/html; charset=utf-8 ayakta → GET /oyunlar/sayi ← 200 OK content-type: text/html; charset=utf-8 Toplam 12 oyun
Üç şeye dikkat et:
/kök yoldur — sitenin ana sayfası gibi. API'lerde genelde "ben kimim" bilgisini döndürür./saglik(health check) neredeyse her ciddi sunucuda vardır. Sistemi izleyen araçlar her birkaç saniyede bir buraya uğrar; cevap gelmezse "sunucu düştü" alarmı çalar.storebu laboratuvarın hafızasındaki demo verisidir: Piksel Market'in oyunları, oyuncuları, satışları. SQL dünyasındaki mağazanın aynısı — sol paneldeki 📦 kutulardan içine bakabilirsin.
Yolları tanımlama sırası önemlidir: Express yukarıdan aşağı bakar ve ilk eşleşen yolu çalıştırır, gerisine bakmaz. Aynı yolu iki kez tanımlarsan ikincisi asla çalışmaz:
const app = express(); app.get('/oyunlar', (req, res) => res.send('birinci')); app.get('/oyunlar', (req, res) => res.send('ikinci')); send('GET', '/oyunlar');
→ GET /oyunlar ← 200 OK content-type: text/html; charset=utf-8 birinci
Bir de sunucu programcılığının klasik hatası var: işleyiciyi yazdın ama cevap göndermeyi unuttun. Bu durumda sunucu çökmez, hata da vermez — istemci sonsuza kadar bekler:
const app = express(); app.get('/unutulmus', (req, res) => { const oyun = store.oyunlar[0]; // res.json(oyun); ← bu satır unutuldu! }); send('GET', '/unutulmus');
→ GET /unutulmus ← (cevap yok) — işleyici res.send/res.json çağırmadı, istemci bekliyor.
res.send, res.json, res.end ya da next() ile devretmeli. Sayfanın "sonsuza kadar yüklendiği" hataların çoğunun kaynağı budur.Kendini test et
Doğru mu, yanlış mı? — Bir işleyicide res.send/res.json çağrılmazsa Express otomatik olarak boş bir cevap gönderir.
Cevabı gör
Cevap: Yanlış
Hayır — cevap hiç gitmez ve istemci bekler. "Sayfa sonsuza kadar yükleniyor" hatasının klasik sebebi budur.
Bu sunucuya GET /oyunlar isteği gelirse ne döner?
ikincibirinciİkisi birden
Cevabı gör
Cevap: birinci
Express yukarıdan aşağı bakar ve ilk eşleşeni çalıştırır; ikinci tanım hiç çalışmaz.