Express.js – Hata Yönetimi

Merhaba,

Bu içeriğimizde Express.js’de genel hata yönetimi üzerine konuşuyor olacağız.

Express.js’de genel hata yönetimini sağlayabilmek için hata yönetimi için özel dizayn edilmiş middleware kullanmamız gerekmektedir.

Örnek olarak aşağıdaki kod bloğunu inceleyiniz.

const express = require("express");
const app = express();
const routes = require("./routes");
const middleware = require("./middleware")

app.use("/", middleware);
app.set("view engine", "pug");
app.use("/", routes);
//------ Error MiddleWare
app.use("/", (error, request, response, next) => {
    response.status(error.status);
    response.render("error", { status: error.status, message: error.message });
});
//------ Error MiddleWare
app.use(express.static("node_modules"));
app.listen(5000);

Yukarıdaki kod bloğuna bakarsanız eğer hata ara katmanının tanımlandığını göreceksiniz. Bu tanımlanan callback fonksiyonu, tanımlandığı “use” fonksiyonunun birinci parametresindeki “/” değerden dolayı tüm routelara uygun çalışacaktır. Ayrıca bu callback fonksiyon, alınan hatayla ilgili bilgi alınabilmesi için “error” parametresi barındırmaktadır.

.
.
.
router.get("/", (request, response, next) => {
    if (false)
        response.render("index", { title: "Anasayfa" });
    else
        next({ status: 404, message: "Beklenmeyen bir hatayla karşılaşıldı." });
})
.
.
.

Tanımlanmış routelar arasından herhangi birinde yukarıdaki kontrolü sağlarsak eğer ilgili “next” fonksiyonu tetiklendiği zaman bizim biraz önce tanımlamış olduğumuz error middleware’ımız tetiklenecektir ve parametre olarak verdiğimiz değişkenler ilgili hata katmanındaki “error” parametresi tarafından yakalanacak ve hata bilgisini taşıyacaktır. Burada dikkat etmeniz gereken husus, hata kontrolünü sağlayacağımız route yapılarına bildiğimiz “request” ve “response” parametrelerinin yanında bir de “next” parametresi eklenmiş bulunmaktadır.

Olası bir hata yakalandığı esnada render edilecek “error.pug” dosyamızıda aşağıdaki gibi dizayn edersek eğer;

    div(class="alert alert-primary", role="alert")
        h2(style="color:red;")  Hata 
            h3 Status : #{status}
            h4 Message : #{message}

Express.js - Hata Yönetimi
şeklinde olası hatalarımızı karşılaşmaktayız.

Sonraki yazılarımda görüşmek üzere…
İyi çalışmalar…

Bunlar da hoşunuza gidebilir...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*

Copy Protected by Chetan's WP-Copyprotect.