Veltstack
BlogWeb Yapımı10 dk

Node.js & Prisma

Node.js ve Prisma ile modern backend ve API mimarisinin temellerini gerçek örneklerle anlatıyoruz.

Node.js & Prisma
Ömer Halis Demir

YAZAN

Ömer Halis Demir

Full Stack Developer

Modern web uygulamasının kalbi backend katmanıdır: veritabanı işlemleri, kimlik doğrulama, ödeme entegrasyonları ve iş mantığı burada çalışır. Veltstack projelerinde bu katmanı Node.js ve Prisma ORM ile inşa ediyoruz. Bu yazıda Node.js'in ne olduğunu, Prisma'nın neden tercih edildiğini ve Next.js ile nasıl bir arada çalıştığını anlatıyoruz.

Node.jsJavaScript runtime
PrismaType-safe ORM
REST APIRoute Handlers

Backend Nedir?

Backend (sunucu tarafı), kullanıcının göremediği katmandır. Form gönderimi, admin paneli işlemleri, sipariş kaydı, e-posta tetikleme ve üçüncü parti API çağrıları burada gerçekleşir. İyi tasarlanmış bir backend; güvenlik, veri bütünlüğü ve ölçeklenebilirliğin temelidir.

Frontend tarafı için React & Next.js rehberimize bakabilirsiniz; bu yazı sunucu katmanına odaklanır.

Node.js Nedir?

Node.js, JavaScript'i tarayıcı dışında sunucuda çalıştıran açık kaynaklı bir runtime ortamıdır. Tek dil (TypeScript/JavaScript) ile hem frontend hem backend geliştirmeyi mümkün kılar; ekip verimliliğini artırır.

  • Non-blocking I/O: Eşzamanlı istekleri verimli işler; API ve gerçek zamanlı uygulamalara uygundur.
  • npm ekosistemi: Express, Zod, next-auth gibi binlerce paketle hızlı entegrasyon.
  • TypeScript uyumu: Tip güvenliği frontend ile backend arasında tutarlılık sağlar.
  • Next.js entegrasyonu: Route Handlers ve Server Components doğrudan Node.js üzerinde çalışır.

Prisma Nedir?

Prisma, Node.js ve TypeScript projeleri için modern bir ORM (Object-Relational Mapping) aracıdır. Veritabanı şemasını kod olarak tanımlar, migration'ları yönetir ve type-safe sorgular üretir.

  • schema.prisma: Modeller, ilişkiler ve enum'lar tek dosyada tanımlanır.
  • Prisma Client: Otomatik üretilen, tam tipli veritabanı istemcisi; IntelliSense desteği sunar.
  • Migration: Şema değişiklikleri versiyonlanır; ekip içi ve production deploy'da tutarlılık sağlar.
  • Çoklu veritabanı: MySQL, PostgreSQL, MongoDB ve SQLite desteklenir. Veritabanı seçimi için Veritabanı Seçimi rehberimize bakın.

Veltstack projelerinde Prisma'yı MySQL ile kullanıyoruz; çok dilli alanlar _tr / _en suffix yapısıyla modellenir.

Benzetme

Ham SQL

Elle yazılan sorgular

Her seferinde elle SQL yazmak; güçlü ama hata riski yüksek, şema değişince tüm sorguları tek tek güncellemek gerekir.

SELECT * FROM users WHERE...

Prisma ORM

Type-safe veri katmanı

Şemaya uygun, tipli sorgular; IDE otomatik tamamlama sunar, migration ile veritabanı ve kod senkron kalır.

prisma.user.findMany()

Backend Mimarisi: Katmanlar

API Route (Route Handler)

Next.js app/api/ altındaki endpoint'ler HTTP isteklerini karşılar. GET, POST, PUT, DELETE metodları export edilir.

Validasyon (Zod)

Gelen JSON gövdesi Zod şemasıyla doğrulanır. Geçersiz veri 400 hatasıyla reddedilir; SQL injection ve tip hataları önlenir.

İş mantığı

Auth kontrolü, rate limiting, e-posta gönderimi ve üçüncü parti API çağrıları bu katmanda yürütülür.

Veri katmanı (Prisma)

CRUD işlemleri Prisma Client üzerinden yapılır. İlişkili modeller include veya select ile çekilir.

Express.js vs Next.js Route Handlers

ÖzellikExpress.jsNext.js Route Handlers
KullanımBağımsız API sunucusuNext.js projesi içinde API
DeployAyrı sunucu / containerVercel serverless fonksiyon
Routingapp.get('/users') manuelapp/api/users/route.ts dosya tabanlı
Frontend entegrasyonuCORS yapılandırması gerekirAynı origin; CORS sorunu yok
Prisma uyumuTam destekTam destek
Ne zaman?Mikroservis, mobil API, ayrı backendFull-stack Next.js projeleri

Veltstack'te çoğu projede Next.js Route Handlers yeterlidir; ayrı Express sunucusu yalnızca özel entegrasyon veya mikroservis mimarisi gerektiğinde devreye girer.

Prisma'nın Öne Çıkan Özellikleri

  • Type-safe sorgular: prisma.post.findMany() dönüş tipi derleme zamanında bellidir; runtime sürprizleri azalır.
  • İlişki yönetimi: @relation ile foreign key ve cascade kuralları şemada tanımlanır.
  • Migration geçmişi: prisma migrate ile şema değişiklikleri izlenebilir ve geri alınabilir.
  • Prisma Studio: Görsel veritabanı tarayıcısı; geliştirme sırasında veri kontrolü için pratik araç.
  • Seed script: prisma/seed.ts ile başlangıç verisi otomatik yüklenir; test ve demo ortamları hızlanır.
  • Sağlayıcı bağımsızlığı: MySQL'den PostgreSQL'e geçişte şema ve client büyük ölçüde korunur.

Alternatif ORM ve Backend Araçları

  • Drizzle ORM: Hafif, SQL'e yakın syntax; performans odaklı projelerde alternatif.
  • TypeORM: Dekoratör tabanlı, NestJS ekosisteminde yaygın.
  • Mongoose: MongoDB projelerinde doküman modelleme için standart.
  • Supabase / Firebase: Backend-as-a-service; hızlı prototip için uygun, özelleştirme sınırlı.
  • NestJS: Kurumsal ölçekte modüler Node.js framework'ü; Express veya Fastify üzerine inşa edilir.

Node.js + Prisma Ne Zaman Tercih Edilmeli?

  • Full-stack Next.js projeleri: Tek repo, tek dil, Route Handlers + Prisma.
  • Admin paneli ve CMS: CRUD yoğun özel yazılım projelerinde type-safe veri erişimi.
  • E-ticaret ve ödeme: Sipariş, stok ve kullanıcı verisi ilişkisel yapıda; Prisma transaction desteği kritik.
  • Çok dilli içerik: title_tr, title_en gibi alanlar şemada net modellenir.
  • API + mobil uygulama: Express veya Route Handlers ile REST API; React Native istemciye servis edilir.

Pratik ipucu

Vercel gibi serverless ortamda Prisma kullanırken connection pool limitlerine dikkat edin. Neon, PlanetScale veya Prisma Accelerate gibi çözümler bağlantı yönetimini kolaylaştırır. Detay: Vercel'de Yayın.

Sık Yapılan Hatalar

  • Her Route Handler'da yeni PrismaClient örneği oluşturmak; singleton pattern kullanın.
  • Validasyon atlayıp ham kullanıcı girdisini doğrudan veritabanına yazmak.
  • API anahtarlarını veya DATABASE_URL'i frontend koduna sızdırmak.
  • Migration'ları production'da manuel SQL ile atlamak; şema drift oluşur.
  • N+1 sorgu problemi: ilişkili veriyi döngü içinde tek tek çekmek yerine include kullanın.
  • Auth kontrolünü unutmak; admin API route'ları mutlaka oturum doğrulaması içermeli.

Profesyonel Backend Geliştirme Desteği

Sağlam backend mimarisi; güvenlik, performans ve uzun vadeli bakımın temelidir. Veltstack olarak Node.js, TypeScript, Prisma, Zod ve Next.js Route Handlers ile kurumsal siteler, e-ticaret ve özel yazılım projelerinde uçtan uca backend geliştirme sunuyoruz.

Sonuç

Node.js JavaScript ekosistemini sunucuya taşır; Prisma ORM veritabanı katmanını type-safe ve yönetilebilir hale getirir. Next.js Route Handlers ile birleştiğinde tek repo içinde full-stack geliştirme mümkün olur. Yeni bir web projesi planlıyorsanız Node.js + Prisma kombinasyonu 2026 itibarıyla en dengeli backend seçeneklerinden biridir.

Bu içeriği faydalı buldunuz mu? Çevrenizle paylaşın.

ÜCRETSİZ GÖRÜŞME

Paket seçiminde yardım mı lazım?

Ücretsiz görüşmede projenizi dinleyip doğru paketi birlikte belirleyelim ve 24 saat içinde size dönüş yaparız.

  • Ücretsiz keşif görüşmesi
  • Size özel paket önerisi
  • Net kapsam ve fiyat