Middleware Mantığı: İstek (Request) ve Cevap (Response) Arasındaki Köprü

crazy_coder

Moderatör
Katılım
20 Şub 2026
Mesajlar
204
Tepkime puanı
0
Puanları
16

1. Middleware Nedir?​


Middleware, bir HTTP isteği (Request) sunucuya ulaştığında, o istek nihai rotaya (Route Handler) varmadan önce çalışan fonksiyonlardır. Bu fonksiyonlar şunları yapabilir:

  • []Herhangi bir kodu çalıştırabilir.
    []İstek (req) ve cevap (res) nesneleri üzerinde değişiklik yapabilir.
    []İstek-cevap döngüsünü sonlandırabilir.
    []Yığındaki bir sonraki middleware fonksiyonunu (next) çağırabilir.

2. Middleware'in Anatomisi​


Bir middleware fonksiyonu üç temel parametre alır: req, res ve next. next() fonksiyonu kritik öneme sahiptir; eğer onu çağırmazsanız, istek sunucuda asılı kalır ve kullanıcıya asla cevap gitmez.

JavaScript:
app.use((req, res, next) => {
console.log("Bir istek geldi!");
// İşimiz bitti, sıradaki middleware veya rotaya geç:
next();
});

3. En Yaygın Kullanım Senaryoları​


Neden doğrudan rotaya (Route) yazmıyoruz da middleware kullanıyoruz? Çünkü bazı işlemler evrenseldir ve her rotada tekrar yazmak yerine tek merkezden yönetilmelidir.


  • []Logging (Günlük Tutma): Hangi sayfaya ne zaman girildiğini kaydetmek.
    []Authentication (Kimlik Doğrulama): Kullanıcı giriş yapmamışsa profil sayfasına erişimini engellemek.
    []Parsing (Ayrıştırma): Gelen karmaşık JSON verilerini okunabilir hale getirmek (express.json()).
    []Error Handling (Hata Yönetimi): Uygulama çöktüğünde kullanıcıya düzgün bir hata mesajı göstermek.

4. Middleware Tipleri​


A. Uygulama Seviyesi (Application-level): app.use() ile tüm uygulama için geçerli olanlardır.
B. Rota Seviyesi (Router-level): Sadece belirli bir rota grubu için çalışanlardır.
C. Hata Yönetimi (Error-handling): Dört parametre alan özel fonksiyonlardır: (err, req, res, next).

JavaScript:
// Sadece "/admin" ile başlayan yollarda çalışan bir koruma middleware'i
app.use('/admin', (req, res, next) => {
if (kullaniciAdminMi) {
next();
} else {
res.status(403).send("Yetkiniz yok!");
}
});

5. Bir "Bariyer" Olarak Middleware​


Middleware'ler birer filtre gibidir. İstek bu filtrelerden geçemezse (res.send ile yanıt dönerse), sonraki aşamalara asla ulaşamaz. Bu sayede sunucunuzu gereksiz yükten ve kötü niyetli isteklerden korumuş olursunuz.



Sonuç

Middleware mantığı, Express.js'i bu kadar modüler ve güçlü kılan şeydir. "İsteği al, işle, gerekirse bir sonrakine devret" prensibiyle çalışan bu yapı, temiz ve sürdürülebilir bir backend mimarisinin temelidir.
 
Geri
Üst