Middleware nedir ve neden kullanılır?

Middleware, bir istek sunucuya ulaşmadan önce veya yanıt kullanıcıya gitmeden önce araya giren yazılım katmanıdır. İstek ve yanıt arasında bir köprü görevi görür.

Web uygulamalarında middleware genellikle şu işleri yapar: kullanıcı doğrulaması, veri doğrulama, günlükleme, hata yönetimi, CORS ayarları, sıkıştırma. Örneğin bir e-ticaret sitesinde middleware, kullanıcının oturum açıp açmadığını kontrol eder, ödeme bilgisini şifreler, sunucu loglarına kaydeder.

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası

Node.js ve Express.js ortamında middleware işlevleri zincir halinde çalışır. Her middleware bir sonraki middleware'i çağırır (next fonksiyonu ile). Bu yapı sayesinde istek adım adım işlenir.

1const express = require('express');
2const app = express();
3
4// Basit bir middleware
5app.use((req, res, next) => {
6console.log('İstek geldi:', req.method, req.url);
7next(); // Sonraki middleware'e geç
8});
9
10// Doğrulama middleware'i
11app.use((req, res, next) => {
12if (req.headers.authorization) {
13next();
14} else {
15res.status(401).send('Yetkilendirme gerekli');
16}
17});
18
19app.get('/api/veri', (req, res) => {
20res.json({ mesaj: 'Başarılı' });
21});
22
23app.listen(3000);

Middleware kullanmanın faydası: kodun düzenli kalması, aynı işlemleri tekrar tekrar yazmamanız, güvenliği merkezi noktada yönetmeniz. Büyük projelerde middleware olmadan her endpoint'te doğrulama, loglama kodu yazmanız gerekir. Middleware ile bunu bir kez yazıp tüm rotalar için uygularsınız.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz
  • adlı kullanıcıya yanıt verdi
    kodkafasi

    işte bu yüzden hata yakalamayı en sona koyuyorum artık bütün middlewareları o genel catche atıyorum

  • adlı kullanıcıya yanıt verdi
    yorgunbiri

    evet ya hata yönetimi olmayınca bütün zincir bozuluyor hiç fark etmezsin sonra neden request bekliyo diye saatler harcarsın

  • adlı kullanıcıya yanıt verdi
    kodkafasi

    eh ya expresste next çağırınca işlemi bir sonraki middlewaree aktarıyorsun mantık çok basit ama gerçi o zincirin hatasıyla uğraşırken can sıkıcı oluyor bir middlewarede catch yazmayı unutsan request asılı kalıyor

  • yorgunbiri

    araya giren katman diyince aklıma expressteki middleware geldi next çağırıp bir sonrakine geçiyorsun o kadar basit ödeme şifreleyen örneği iyi anlatmışsınız