Lajiverta Academy Satın Al — 499₺

Academy 🔌 Backend & API Sunucu Nedir?

İlk sunucun: üç satır

🔌 Sunucu Nedir? bölümü · Code Quest Backend & API parkuru

Node.js'te sunucu yazarken neredeyse herkes Express adlı kütüphaneyi kullanır. Express, "şu yola şu istek gelirse şu kodu çalıştır" demeyi üç satıra indirir. İşte dünyanın en yaygın backend iskeleti:

SUNUCU KODU (Node · Express)
const express = require('express');
const app = express();

app.get('/merhaba', (req, res) => {
  res.send('Merhaba, Backend!');
});

app.listen(3000, () => console.log('Sunucu 3000 portunda dinliyor'));

send('GET', '/merhaba');
▸ HTTP TRAFİĞİ
· Sunucu 3000 portunda dinliyor

GET /merhaba
← 200 OK
content-type: text/html; charset=utf-8
Merhaba, Backend!

Satır satır çözelim:

  • require('express') — Express kütüphanesini içeri al. (Tarayıcıdaki <script> etiketinin Node'daki karşılığı.)
  • express() — bir uygulama nesnesi üret. Sunucunun tamamı bu app üzerinde kurulur.
  • app.get(yol, işleyici) — "bu yola GET isteği gelirse şu fonksiyonu çalıştır" demek. Bu fonksiyona işleyici (handler) denir.
  • req — gelen isteğin tamamı. res — geri göndereceğin cevap.
  • res.send(...) — cevabı yaz ve gönder. Bu satırla döngü kapanır.
  • app.listen(3000) — sunucuyu 3000 numaralı portta dinlemeye başlat.

Port nedir? Bir makinenin binlerce kapısı vardır ve her kapının bir numarası olur. Web sunucuları geliştirme sırasında genelde 3000, 5000 veya 8080 kapısını kullanır. localhost:3000 adresindeki 3000 tam olarak budur.

Bir yolu tanımlamamışsan ne olur? Express kimseyi boşta bırakmaz, otomatik olarak 404 döner:

SUNUCU KODU (Node · Express)
const app = express();

app.get('/merhaba', (req, res) => res.send('Merhaba!'));

send('GET', '/selam');
▸ HTTP TRAFİĞİ
GET /selam
← 404 Not Found
content-type: text/plain; charset=utf-8
Cannot GET /selam

404 Not Found — internetin en meşhur hatası. "Sunucuya ulaştım ama istediğim şey burada yok" demektir. Dikkat et: sunucu çalışıyor, hata sunucunun kendisinde değil, istenen yolda.

⚠️ app.get yazdığında sunucu o anda hiçbir şey çalıştırmaz — sadece kayıt yapar: "böyle bir istek gelirse bunu çağır". İşleyicinin içi ancak gerçek bir istek geldiğinde koşar.

Kendini test et

Bu kodun çıktısı ne olur?

const app = express();
app.get('/ping', (req, res) => res.send('pong'));
send('GET', '/ping');
Cevabı gör

Çıktı:

→ GET /ping
← 200 OK
content-type: text/html; charset=utf-8
pong

res.send metin gönderir: durum 200, içerik tipi text/html, gövde "pong".

Bu kodun çıktısı ne olur?

const app = express();
app.get('/merhaba', (req, res) => res.send('selam'));
send('GET', '/hosgeldin');
Cevabı gör

Çıktı:

→ GET /hosgeldin
← 404 Not Found
content-type: text/plain; charset=utf-8
Cannot GET /hosgeldin

Eşleşen yol yoksa Express otomatik 404 döner. Sunucu ayakta; bulunamayan şey yoldur.