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:
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');
· 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ı buappü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:
const app = express(); app.get('/merhaba', (req, res) => res.send('Merhaba!')); send('GET', '/selam');
→ 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.