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.
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.
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...Ş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
| Özellik | Express.js | Next.js Route Handlers |
|---|---|---|
| Kullanım | Bağımsız API sunucusu | Next.js projesi içinde API |
| Deploy | Ayrı sunucu / container | Vercel serverless fonksiyon |
| Routing | app.get('/users') manuel | app/api/users/route.ts dosya tabanlı |
| Frontend entegrasyonu | CORS yapılandırması gerekir | Aynı origin; CORS sorunu yok |
| Prisma uyumu | Tam destek | Tam destek |
| Ne zaman? | Mikroservis, mobil API, ayrı backend | Full-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:
@relationile foreign key ve cascade kuralları şemada tanımlanır. - Migration geçmişi:
prisma migrateile ş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.tsile 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_engibi 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
includekullanı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.





