Express JS arayazılımları (middleware) çalıştıran bir web çatısı olarak özetlenebilir. Bir istek olduğunda ilgili ara yazılımları çağırarak çalıştırır. Böylece sırası ile yapılması gereken işlemler yapılır.
Mesela yapılan istek sunucuda yoksa, bu durumda sayfa bulunamadı cevabı için bir middleware yazılarak bu işlev özelleştirilebilir.
Veya sayfa oluşturulurken, eğer istek yapan giriş yapmış bir kullanıcı ise ona göre ek işlevler eklenmek istenirse, bu işlem için bir fonksiyon ( middleware) yazmak işlemi oldukça kolaylaştıracaktır.
Express JS app.use middleware fonksiyonları çağırmak için kullanılan bir express metodudur. Eğer belirli bir istek için özel bir işlem yapılacaksa app.use ile çağrılır.
app.use Kullanım Örneği
Şimdi sık kullanılan bir işlemi middleware fonksiyona dökelim. Biz sadece örneği vereceğiz siz gerekirse içerisini doldurursunuz. Sonrasında app.use nasıl kullanılır onu inceleyelim.
Örneğimizde tüm isteklerden önce bir middleware fonksiyon çağırarak işlem yapalım. Yapacağımız işlem, her istek yapıldığında konsola Yeni bir istek yapıldı. yazdırmak olsun.
const express = require("express");
const app = express();
const port = 3000;
// Tüm isteklerden önce çalışacak
// bir middleware oluşturalım
app.use((req, res, next) => {
console.log("Yeni bir istek yapıldı");
next();
});
app.get("/", (req, res) => {
res.send("Merhaba Dünya!");
});
app.listen(port, () => console.log("Uygulama başlatıldı."));Uygulama çalıştırıldığında tek bir isteğe cevap verecektir. Bunun için http://localhost:3000 adresine giriş yapmak gerekir. Ekrana Merhab Dünya yazdıracaktır.
Bizi ilgilendiren ise yazmış olduğumuz ara yazılımdır. Her istek yapıldığında bu ara katman çalışacak konsola Yeni bir istek yapıldı yazdıracak ve sonrasında next() fonksiyonu çalıştırarak bir sonraki ara yazılımın çalışmasını sağlayacaktır. Bir yol (route) belirtilmediği için bu işlem tüm çağrılarda tekrarlanacaktır.
Express JS app.use Nasıl Kullanılır?
app.use metodu kullanılırken öncelikle bir yol (path) ve bir callback fonksiyonunu parametre olarak alır. Kullanım şekli aşağıdaki gibidir.
app.use(yol, fonk);Mesela biz fonksiyonun sadece hakkinda sayfasında çalışmasını istiyorsak
app.use("/hakkinda", fonk);şeklinde kullanmamız yeterlidir. Ama tüm sayfalarda kullanılacaksa
app.use("*", fonk);şeklinde bir kullanım yeterli olacaktır. Callback fonksiyonu ise üç değer alır. Bunlar istek (req), cevap (res) ve next fonksiyonudur.
- req (request) tüm istek bilgilerinin tutulduğu nesnedir.
- res (response) tüm cevap bilgilerinin tutulduğu nesnedir.
- next bir sonraki ara yazılımın, işlemin, çağrılması için kullanılır. Eğer kullanılmazsa işlem askıda kalır ve geriye bir sayfa dönderilmez.
Ayrıntılı bilgi için Express JS middleware sayfasına bakabilirsiniz.
Sonuç
Express JS ile bir uygulama geliştiriliyorsa bu, bir ara yazılımdan sonraki ara yazılıma geçiş yapan bir uygulamadır. Bu middleware fonksiyonlarını çağırmak için ise app.use metodu kullanılır.
Express JS ile ilgili öğrenmek istediklerinizi yorumlardan bize yazabilirsiniz.
