Fastify.js Lifecycle Hooks Nedir ve Nasıl Kullanılır?
Fastify.js Lifecycle Hooks Nedir ve Nasıl Kullanılır?
Fastify.js Lifecycle Hooks’a Giriş
Node.js tabanlı yüksek performanslı web framework’ü Fastify.js, modülerliği ve hızıyla dikkat çekmektedir. Geliştiricilere gelişmiş API ve esneklik sunan Fastify.js’in en güçlü özelliklerinden biri de lifecycle hook (yaşam döngüsü kancaları) mekanizmasıdır. Fastify.js lifecycle hooks, bir isteğin alınmasından yanıtın gönderilmesine kadar geçen süreçte uygulama mantığınıza müdahale etmenizi sağlar. Bu makalede Fastify.js lifecycle hooks nedir, neden kullanılır ve örneklerle nasıl uygulanır detaylarıyla ele alacağız.
Fastify.js Lifecycle Hooks Temelleri
Fastify.js lifecycle hooks, HTTP istekleri üzerinde ince ayar yapma imkanı sunar. Her bir hook, isteğin farklı aşamalarında devreye girer. Örneğin, onRequest kancası gelen isteği yakalarken, preHandler ile işleyiciden hemen önce özel kontroller ekleyebilirsiniz. Bu hook’lar; logging, authentication, validation ve daha birçok işlevin merkezi ve tekrarlanabilir şekilde yönetilmesi için idealdir. En sık kullanılan Fastify.js lifecycle hooks şunlardır:
- onRequest: İstek sunucuya ulaştığında tetiklenir.
- preParsing: Gövdesi ilk kez ayrıştırılmadan önce çalışır.
- preValidation: Veriler işleyiciye ulaşmadan önce devreye girer.
- preHandler: Router handler’dan hemen önce işlenir.
- preSerialization: Yanıt serileştirilmeden önce çağrılır.
- onSend: Yanıt gönderilmeden önce devreye girer.
- onResponse: Yanıt gönderildikten sonra çalışır.
Fastify.js Lifecycle Hooks Kullanımına Örnekler
Fastify.js lifecycle hooks nasıl tanımlanır ve kullanılır hemen görelim. Basit bir örnekle, onRequest ve preHandler hook’larını ekleyelim:
const fastify = require('fastify')();
// onRequest hook'u: Her gelen istekte çalışır
fastify.addHook('onRequest', async (request, reply) => {
console.log('Gelen isteği gördüm:', request.raw.url);
});
// preHandler hook'u: Handler'dan önce user kontrolü yapalım
fastify.addHook('preHandler', async (request, reply) => {
if(!request.headers['authorization']) {
reply.code(401).send({ error: 'Yetkisiz erişim!' });
}
});
fastify.get('/', async (request, reply) => {
return { message: 'Merhaba Fastify!' };
});
fastify.listen({ port: 3000 }, err => {
if (err) throw err;
console.log('Sunucu 3000 portunda çalışıyor');
});
Yukarıdaki kodda, Fastify.js lifecycle hooks sayesinde tüm isteklerde log alınmasını ve API'ye yetkisiz erişimlerin engellenmesini sağladık. Her hook asenkron (async) destekler ve hooked fonksiyonlarda uygulamanın işleyişini değiştirebilirsiniz.
Sonuç: Fastify.js Lifecycle Hooks ile Kolay Yönetim
Fastify.js lifecycle hooks modern web uygulamalarında esneklik ve merkezî kontrol sağlamanın en etkili yollarındandır. API güvenliği, loglama, veri doğrulama gibi ortak ihtiyaçlarda kod tekrarından kaçınmak için aktif şekilde kullanılabilir. Fastify.js lifecycle hooks hakkında daha fazla bilgi için resmi Fastify dökümantasyonunu inceleyebilirsiniz.

Yorum Gönder