Fastify.js ve PostgreSQL Entegrasyonu Nasıl Yapılır?


Fastify.js ve PostgreSQL Entegrasyonu Nasıl Yapılır?

Modern Node.js API geliştirme süreçlerinde Fastify.js ve PostgreSQL entegrasyonu oldukça sık tercih edilmektedir. Hızlı, düşük maliyetli ve güvenli çözümler üretmek isteyen geliştiriciler; Fastify.js'in hızlı ve hafif yapısı ile PostgreSQL'in güçlü ilişkisel veritabanı yeteneklerinden yararlanır. Bu makalede, iki teknolojiyi bir araya getirerek etkili bir backend uygulaması geliştirme adımlarını teknik olarak açıklayacağız.

Fastify.js Nedir? Avantajları Nelerdir?

Fastify.js, Node.js tabanlı modern ve hızlı bir web framework'üdür. Düşük gecikme süreleri, güvenlik odaklı yapısı ve sade API tasarımıyla öne çıkar. Geleneksel Express.js uygulamalarına göre çok daha iyi bir performans sağlamaktadır. Fastify.js ve PostgreSQL entegrasyonu için Fastify'ın asenkron altyapısı büyük kolaylık sunar.

Fastify.js Kurulumu

npm init -y
npm install fastify

Node.js'de PostgreSQL Kullanımı

PostgreSQL, açık kaynaklı ve yüksek güvenlikli bir veritabanı yönetim sistemidir. Node.js ortamında genellikle pg paketi ile kullanılır. Fastify.js ve PostgreSQL entegrasyonu için ilk adım olarak gerekli PostgreSQL paketi yüklenmelidir.

PostgreSQL Bağlantısı Kurmak

npm install pg

Fastify.js ve PostgreSQL Entegrasyonu: Örnek Proje

Aşağıda basit bir Fastify.js API projesinin PostgreSQL ile bağlantı kurduğu tam bir örnek kod bulunmaktadır. Bu entegrasyon sayesinde veritabanından veri çekebilir veya kayıt ekleyebilirsiniz.

const fastify = require('fastify')({ logger: true });
const { Pool } = require('pg');

// PostgreSQL bağlantı havuzu tanımı
const pool = new Pool({
  user: 'kullaniciadi',
  host: 'localhost',
  database: 'veritabaniadi',
  password: 'parola',
  port: 5432,
});

fastify.get('/kullanicilar', async (request, reply) => {
  try {
    const { rows } = await pool.query('SELECT * FROM kullanicilar');
    reply.send(rows);
  } catch (err) {
    reply.code(500).send({ hata: 'Veritabanı hatası', detay: err.message });
  }
});

const start = async () => {
  try {
    await fastify.listen({ port: 3000 });
    console.log('Sunucu 3000 portunda çalışıyor');
  } catch (err) {
    fastify.log.error(err);
    process.exit(1);
  }
};

start();

Kodun Açıklaması

  • Pool: PostgreSQL sunucusu ile bağlantıyı yönetir.
  • /kullanicilar: Tüm kullanıcıları listeleyen GET endpoint'i örneğidir.
  • async/await: Asenkron sorgular sayesinde yüksek performans ve kolay hata yönetimi.

Sonuç: Etkili ve Güvenli Entegrasyon

Özetle, Fastify.js ve PostgreSQL entegrasyonu ile hızlı, güvenli ve ölçeklenebilir backend API uygulamaları geliştirmek mümkündür. Fastify'ın hafif yapısı ve PostgreSQL'in güçlü veri yönetimi birleştiğinde modern web projelerinde güçlü bir altyapı elde edilir. Projelerinizde hem kolay geliştirme hem performans için bu ikiliyi gönül rahatlığıyla tercih edebilirsiniz.