Teknoloji ipuçlarını kendin uygula
İçerik
Son yazılar
Biz kimiz
Yazılım Atölyesi, adım adım teknoloji rehberleriyle kendi başına öğrenip uygulama yapmak isteyenlere yardımcı olur. Pratik ipuçları, araç önerileri ve çözümler bulacaksınız.

Node.js Middleware Yapısını Anlama

Express ile ilk API'yi yazan herkes aynı satırı görür: app.use(express.json()). Ama o satırın arka planda ne yaptığını bilmeden ilerleyince, bir gün "req.body neden undefined?" ya da "hata mesajım neden hiç dönmüyor?" sorusuyla saatler kaybedilir.

Çözüm basit: middleware zincirini kafanda net bir şekilde canlandırmak. Bir kere oturduğunda, Express'in tamamı anlaşılır hale gelir. Aşağıdaki adımları kendi projende terminal açık şekilde denemen en iyisi.

Middleware Nasıl Çalışır?

Express aslında ince bir katman. İçinde sihir yok; sırayla çalışan fonksiyon listesi var. Gelen her istek bu listenin başından girer, ya sonuna kadar ilerler ya da yolda bir yerde cevaplanır.

İstek zinciri ve next() mantığı

Bir middleware imzası şudur: (req, res, next). Üç ihtimalden birini yaparsın:

Hiçbirini yapmazsan istek asılı kalır. Tarayıcı döner döner ve timeout'a girer. Debug ederken ilk bakacağın yer burasıdır: unutulmuş bir next().

Küçük bir logger yazarak test et: app.use((req, res, next) => { console.log(req.method, req.url); next(); }) — bunu en üste koy, her isteği terminalde gör.

Middleware türleri

TürNasıl bağlanırÖrnek iş
Uygulama seviyesiapp.use(fn)Log, CORS, body parse
Yol bazlıapp.use('/admin', fn)Yetki kontrolü
Route seviyesiapp.get('/x', fn, handler)Tek endpoint doğrulaması
Router seviyesirouter.use(fn)Modül bazlı kurallar
Hata middleware'i4 parametreli fnMerkezî hata cevabı

Router seviyesini erken öğrenmek işe yarar. Kullanıcı, ürün, sipariş gibi modülleri ayrı dosyalara böl; her birine kendi middleware'ini ver. Dosya yapısı büyüdükçe fark edilir bir rahatlık sağlar.

Sıralama neden her şeyden önemli

nodejs express middleware yapısında sıra, kodun kendisinden daha kritiktir. Birkaç kural:

  1. Gövde parser'ları (express.json) route'lardan önce gelmeli. Yoksa req.body boş kalır.
  2. Auth kontrolü, koruduğu route'lardan önce tanımlanmalı.
  3. Statik dosya servisi genelde en üstte durur; gereksiz iş yapmayı önler.
  4. 404 yakalayıcı tüm route'lardan sonra gelir.
  5. Hata middleware'i her zaman en son satırdır.

Bir dosyayı yukarıdan aşağı okurken zinciri hayal et. Bu alışkanlık, JavaScript performans konularında da işine yarar: gereksiz katman, her istekte ödediğin bir maliyettir.

Custom Middleware ve Hata Yönetimi

Kendi middleware'ini yazmak, hazır paketleri ezberlemekten daha öğreticidir. Üç tipik ihtiyaçla başla.

1. Doğrulama middleware'i

Gelen veriyi route'a girmeden kontrol et. Böylece handler sadece iş mantığıyla ilgilenir.

2. Auth ve req üzerine veri taşımak

Middleware'ler req nesnesini zenginleştirebilir. Token'ı çözdükten sonra req.user = payload yazarsan, sonraki tüm handler'lar kullanıcıyı bilir.

3. Hata middleware'i ve async tuzağı

Express hata middleware'ini parametre sayısına göre tanır. Dört parametre yazmazsan normal middleware sanılır:

app.use((err, req, res, next) => { console.error(err); res.status(err.status || 500).json({ error: err.message }); })

Dikkat edilmesi gerekenler:

Yazdıklarını doğrulamak için farklı senaryolar dene: eksik gövde, bozuk token, olmayan endpoint. REST API test etme araçları bu noktada zaman kazandırır; her senaryoyu kayıtlı istek olarak saklayabilirsin.

© 2026 Yazılım Atölyesi