Fastify.js Error Handling Yöntemleri
Fastify.js Error Handling Yöntemleri
Back-end geliştirme dünyasında performansı ve modüler yapısıyla öne çıkan Fastify.js, hata yönetimi (error handling) konusunda da esnek ve güçlü bir altyapı sunar. Doğru error handling pratikleri, hem uygulamanın güvenliğini hem de kullanıcı deneyimini artırmak için kritik öneme sahiptir. Bu makalede Fastify.js error handling kavramını, temel kullanım örnekleriyle birlikte ayrıntılı bir şekilde inceleyeceğiz.
Fastify.js'te Hata Yakalama
Fastify.js, asenkron rota (route) fonksiyonlarındaki hataları otomatik olarak yakalar ve ilgili yanıtı (response) döner. Özellikle try/catch blokları veya Promise hatalarında, manual olarak next() fonksiyonu çağrılmaz. Temel bir örnek aşağıdadır:
const fastify = require('fastify')();
fastify.get('/user/:id', async (request, reply) => {
const user = await getUserFromDB(request.params.id);
if (!user) {
throw fastify.httpErrors.notFound('Kullanıcı bulunamadı');
}
return user;
});
Yukarıdaki örnekte 'Kullanıcı bulunamadı' mesajı ile birlikte 404 durum kodu otomatik olarak döndürülür. Fastify.js error handling mekanizması, asenkron işlemler sırasında oluşabilecek tüm hataları otomatik olarak yakalar ve standart API yanıtları üretir.
Global Error Handler Kullanımı
Bazı durumlarda global düzeyde özelleştirilmiş bir error handler tanımlamak gerekir. Fastify'nın 'setErrorHandler' fonksiyonu ile uygulamanızın tamamında geçerli, kapsamlı bir hata yönetimi çözümü sunabilirsiniz:
fastify.setErrorHandler(function (error, request, reply) {
request.log.error(error);
reply
.status(error.statusCode || 500)
.send({
error: true,
code: error.code || 'INTERNAL_SERVER_ERROR',
message: error.message
});
});
Bu örnekle, Fastify.js error handling sürecini merkezi ve okunabilir bir biçimde yönetmek mümkün hale gelir. Hem sistem logları hem de istemciye dönen hata mesajları özelleştirilebilir.
Validasyon ve Diğer Yaygın Hatalar
Fastify.js, otomatik şema validasyonu sonrası oluşan hataları da error handling altyapısına entegre eder. Uygulamanızda JSON şema validasyon hatalarını aşağıdaki gibi ele alabilirsiniz:
fastify.post('/login', {
schema: {
body: {
type: 'object',
required: ['username', 'password'],
properties: {
username: { type: 'string' },
password: { type: 'string' }
}
}
}
}, async (request, reply) => {
// İşlem
});
Kullanıcı geçerli olmayan veya eksik veri gönderirse Fastify.js error handling sisteminiz otomatik olarak uygun bir hata döner.
Sonuç: Güçlü ve Güvenli Uygulamalar
Fastify.js error handling yetenekleri hem performans hem de güvenlik açısından büyük avantaj sağlar. Hataları etkili biçimde yönetmek, hem uygulamanızın sürdürülebilirliği hem de kullanıcı memnuniyeti için gereklidir. Siz de projelerinizde yukarıdaki yöntemleri uygulayarak Fastify.js’in sunduğu yüksek performansı, hatasız ve güvenli biçimde kullanabilirsiniz.

Yorum Gönder