Node.js Middleware
Merhaba arkadaşlar,bu yazımda sizlere express modulunde kullanılan middleware yapısından bahsedeceğim.Middleware’i anlatabilmek için önce kullanıcıdan gelen isteklerin nasıl karşılandığını anlatacağım.
Arkadaşlar,kullanıcı bir istek yaptığında bir adet request bir adet response nesnesi oluşturuluyor.
Bu nesnenin içerisinde kullanıcıya ait kullanıcının girmiş olduğu bilgiler ve kullanıcıya verilecek olan cevap ile ilgili bilgiler bulunuyor.Ve bu nesneler express içerisinde dolaştırılıyor.Tabi ilk olarak bizim şu ana kadar yapmış olduğumuz sistemde express bu objeleri Router Table’sunu kullanarak ilgili Router objesine gönderiyor.
Bu router’ında kendi içerisinde bir tablosu var.elektronik’den sonra gelen parametreleri kontrol ediyor.
Ki biz burada bilgisayar girdik.Girmeyebilirdik.Girmessek bu simge(/) geliyor.
Her parameteye karşılık da bir controller vardı.Controllerlar,parametre olarak req ve res alan iki objeyi alan basit fonksiyonlar.
Burada dikkat etmemiz gereken bir şey req ve res objeleri express tarafından veriliyor.Bu objeler fonksiyonalar arasında dolaştırılıyor.
Şunu unutmamak gerekiyor ki req ve res objeleri kullanıcının verdiği isteğe göre oluşturuluyor ve bunlar node.js’in htttp tarafında oluşturuluyor express’e veriliyor.Express de bunları sırayla eğer ki biz bir fonksiyon tanımladıysak bu iş hattına hangi sırayla tanımladığımıza da bağlı o sırayla götürüp router tablosuna ve controller’a gönderiyor.Aslında burada dikkat ederseniz router da bir middleware oluyor.Ara fonksiyonlar olarak düşünebilirsiniz .Req ve res ‘a cevap veren ara fonksiyonlar.
Şimdi gelin middleware’in express içerisine daha detaylı bakalım.
Başlangıçta kullanıcının isteklerine karşılık req ve res objeleri oluşturuluyor.
Bu objeler,express’e bağlanan middleware’ler yani fonksiyonlar üzerinden sırayla geçiyor.
Peki hangi sırayla geçiyor derseniz?
Express’e hangi sırayla tanıtıyorsanız bu fonksiyonları o sırayla hareket ediyor.
Get Merve Nur Çifci’s stories in your inbox
Join Medium for free to get updates from this writer.
Hepsi req ve res nesnelerini alıyor.Gerekli işlemleri yapıyor üzerinde.Ve bir sonraki middleware’e yolluyor.Yine ara fonksiyon veya ara yazılıma yolluyor.
Bu işlemlerin en sonundaki middleware ise yani ara fonksiyon ise kullanıcıya response’u gönderiyor.
Ve daha sonra kullanıcı ekranda ilgili sayfayı görüyor.
Bu middleware’ler bizim tarafından yapılan fonksiyonlar da olabilir veya başka kişiler tarafından yazılmış sizin indirip kullanabileceğiniz kütüphaneler de olabilir.
Birbirinden farklı middleware’ler var.Kullanıldığı seviye açısından farklı middleware’ler var.
UYGULAMA SEVİYESİ MİDDLEWARE
Yani herhangi bir yol belirtmenize gerek yok.Get ,post gibi.
Burada bir function kullamdım ve app.use kullanıyorum .Use kullanmamın sebebi tüm isteklere karşı kullanılmasını istiyorum.
Dikkat ediyorsanız parametrelerin sonunda bir next var.
Bakın burada paket,sürekli middleware’ler arasında dolaşıyor.Fakat bu middleware’ler arasındaki bağlantıyı bu middleware sağlamıyor.
Eğer ki middleware’i biz yazmışsak bu middleware’i çağırmamız gerekiyor next ile.
Bu fonksiyonu kullanarak bir deneme yapalım.
ROUTER SEVİYESİ ARA YAZILIM
İsterseniz aynı işlemi eğer ki router da yaparsanız sadece o router’a gelen ara fonksiyonlarda çağrılır o fonksiyon.









