Fastify.js Middleware Hooks Kullanımı ve Detayları
Fastify.js Middleware Hooks Kullanımı ve Detayları
Fastify.js, Node.js tabanlı modern ve yüksek performanslı bir web framework’üdür. Özellikle yüksek performans ve esneklik gerektiren projelerde tercih edilen Fastify.js, hızlı yanıt süreleri ve hafifliği ile öne çıkar. Fastify.js uygulamalarında middleware (ara katman yazılımları) veya hooks kullanımı ise, uygulama davranışını özelleştirmek ve istek işleme süreçlerine müdahale etmek için kritik bir rol oynar. Bu makalede, Fastify.js üzerinde middleware (hooks) kullanımını teknik detaylarıyla, örneklerle ve best practice’lerle inceliyoruz.
Fastify.js Hooks Kavramı Nedir?
Express.js’ten alışık olduğumuz middleware kavramı Fastify.js’te hook mekanizmasıyla gerçekleştirilir. Fastify.js middleware hooks; isteğin işlenmesi sırasında farklı aşamalara müdahale etmemizi sağlar. Örneğin; gelen isteğin doğrulanması, oturum kontrolü veya loglama gibi işlemleri hooks ile kolayca gerçekleştirebiliriz. Fastify uygulamalarında onRequest, preHandler, onSend gibi farklı hook çeşitleri bulunur ve her biri farklı aşamada çalışır.
Temel Fastify Hook Kullanımı
Bir Fastify.js uygulamasında en çok kullanılan hooks arasında onRequest ve preHandler yer alır. İşte basit bir hook örneği:
const fastify = require('fastify')();
// onRequest hook ile gelen isteklerde loglama yapılır
fastify.addHook('onRequest', async (request, reply) => {
console.log(`Gelen istek: ${request.raw.url}`);
});
fastify.get('/', async (request, reply) => {
return { mesaj: 'Fastify.js Middleware Hooks örneği' };
});
fastify.listen({ port: 3000 }, (err, address) => {
if (err) throw err;
console.log(`Sunucu çalışıyor: ${address}`);
});
Bu örnekte, onRequest hook'u ile her gelen istek loglanmaktadır. Middleware gibi davranan bu yapı, istek uygulamanıza ulaşmadan önce devreye girer.
Özel Hooks ve Kullanım Örnekleri
Fastify.js, çok sayıda yerleşik hook ile birlikte gelir ve istediğiniz kadar özel hook tanımlayabilirsiniz. Örneğin; global ya da sadece belirli bir route üzerinde çalışan hooks oluşturmak mümkündür. preHandler ile JWT doğrulama ya da kimlik denetimi işlemleri sıklıkla yapılır.
// Sadece belirli route için hook ekleme
fastify.route({
method: 'GET',
url: '/secret',
preHandler: async (request, reply) => {
if (!request.headers.authorization) {
reply.code(401).send({ error: 'Yetkisiz erişim' });
}
},
handler: async (request, reply) => {
return { secret: 'Bu bilgiler gizli!' };
}
});
Fastify.js middleware hooks ile, belirli rotalara özel güvenlik, validasyon ve ön işleyici katmanları rahatlıkla ekleyebilirsiniz.
Sonuç: Fastify.js Middleware Hooks Avantajları
Fastify.js middleware (hooks) mimarisi, yüksek performans ve okunabilirlik avantajı sunar. Express.js’teki geleneksel middleware yerine daha kontrollü ve hızlı çalışan hook sistemi, büyük ölçekli Node.js projelerinde kodunuzu hem test edilebilir hem de sürdürülebilir kılar. Fastify.js ile hook kullanımını etkin bir şekilde öğrenmek, sizi modern backend mimarisinde bir adım öne çıkaracaktır.

Yorum Gönder