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.
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();34// Basit bir middleware5app.use((req, res, next) => {6console.log('İstek geldi:', req.method, req.url);7next(); // Sonraki middleware'e geç8});910// Doğrulama middleware'i11app.use((req, res, next) => {12if (req.headers.authorization) {13next();14} else {15res.status(401).send('Yetkilendirme gerekli');16}17});1819app.get('/api/veri', (req, res) => {20res.json({ mesaj: 'Başarılı' });21});2223app.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.
4 yorum
işte bu yüzden hata yakalamayı en sona koyuyorum artık bütün middlewareları o genel catche atıyorum
evet ya hata yönetimi olmayınca bütün zincir bozuluyor hiç fark etmezsin sonra neden request bekliyo diye saatler harcarsın
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
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