Fastify.js Decorators ile Gelişmiş Özelleştirme
Fastify.js Decorators ile Gelişmiş Özelleştirme
Fastify.js Decorators Nedir?
Fastify.js, yüksek performanslı Node.js framework’lerinden biridir ve üzerinde kolayca özelleştirme yapmanıza olanak sağlar. Bu özelleştirmenin en güçlü yollarından biri ise decorators kavramıdır. Fastify.js decorators ile kendi fonksiyonlarınızı veya özelliklerinizi uygulamanıza ekleyebilir ve bunları tüm handler'larda veya plug-in’lerde rahatlıkla kullanabilirsiniz. Fastify.js decorators sayesinde projelerinizde kod tekrarı azaltılır ve modüler bir yapı oluşturulur.
Fastify Decorator Kullanımı
Fastify.js’de decorator yapısı ile örneğin global yardımcı fonksiyonlar veya servislere kolayca erişebilirsiniz. Decorator’ları decorate veya decorateRequest gibi fonksiyonlarla ekleyebilirsiniz. Temelde, Fastify instance'ına veya request/response objelerine kendi özelliklerinizi tanımlayabilirsiniz.
Örnek: Yeni Bir Decorator Eklemek
const fastify = require('fastify')();
fastify.decorate('toUpperCase', function(str) {
return str.toUpperCase();
});
fastify.get('/', (request, reply) => {
const mesaj = fastify.toUpperCase('merhaba fastify.js decorators!');
reply.send({ sonuc: mesaj });
});
fastify.listen({ port: 3000 }, (err) => {
if (err) throw err;
console.log('Fastify.js Decorators örneği başladı.');
});
Yukarıdaki örnekte, toUpperCase adında bir fonksiyon Fastify instance'ına ekleniyor ve route handler içinde direkt olarak kullanılabiliyor.
Request Üzerine Decorator Eklemek
Kimi zaman sadece gelen isteklere özel fonksiyonlar eklemek isteyebilirsiniz. Bunun için decorateRequest fonksiyonunu kullanabilirsiniz:
fastify.decorateRequest('karsila', function() {
return 'Hoş geldiniz!';
});
fastify.get('/hosgeldin', (request, reply) => {
reply.send({ mesaj: request.karsila() });
});
Burada karsila fonksiyonu yalnızca request objesine eklenmiştir.
Fastify.js Decorators ile Yararları ve Dikkat Edilmesi Gerekenler
Fastify.js decorators kullanmanın bazı avantajları vardır: Kod tekrarını azaltmak, bağımlılık enjeksiyonuna olanak vermek ve uygulamanın test edilebilirliğini artırmak. Fakat, var olmayan bir özelliği tekrar eklemeye çalışmak hata verecektir. Bu yüzden, her decorator eklemeden önce o özelliğin varlığını kontrol etmek iyi bir pratiktir.
Sonuç
Fastify.js decorators, büyük ve modüler Node.js projelerinde işinizi çok daha kolaylaştırır. Hem global yardımcılar hem de isteğe özel özellikler tanımlamanız mümkün olur. "Fastify.js decorators" anahtar kelimesiyle ilerleyen projelerde kod kalitenizi yükseltmek için bu yapıyı mutlaka keşfetmelisiniz.

Yorum Gönder