Prisma ORM Middlewares ve Hooks Nasıl Kullanılır?
Prisma ORM Middlewares ve Hooks Nasıl Kullanılır?
Günümüz modern web uygulamalarında veri tabanı ile etkileşim kurabilmek için verimli ve güvenli bir ORM (Object Relational Mapping) çözümü kullanmak çok büyük önem taşır. Prisma ORM middlewares ve hooks sayesinde veri tabanı işlemlerinde özelleştirilebilir kontroller ve işlemler eklemek mümkündür. Bu sayede uygulamanızda loglama, yetkilendirme veya hata yönetimi gibi gelişmiş işlemleri kolayca hayata geçirebilirsiniz.
Prisma ORM Middlewares Nedir?
Middleware, Prisma istemcisi ile veri tabanı arasında çalışır ve gelen isteği işleyerek, işlemler yapılmadan önce ya da sonra müdahale edebilmenizi sağlar. Böylece veri tabanı işlemleri sırasında, örneğin bir işlemden önce doğrulama, şifreleme ya da izleme (logging) adımlarını ekleyebilirsiniz. Bu işlemler uygulamanızın daha güvenli ve yönetilebilir olmasına olanak tanır.
Middleware Kullanımına Örnek
const { PrismaClient } = require("@prisma/client");
const prisma = new PrismaClient();
prisma.$use(async (params, next) => {
if (params.action === "findMany") {
console.log(`Model: ${params.model}, İşlem: ${params.action}`);
}
return next(params);
});
async function getUsers() {
const users = await prisma.user.findMany();
console.log(users);
}
getUsers();
Yukarıdaki örnekte, her findMany çağrısında model ve işlemi logluyoruz. Bu mekanizma ile gerek log, gerek güvenlik kontrolleri pratik şekilde eklenebilir.
Prisma ORM Hooks Nedir?
Prisma ORM'de doğrudan klasik anlamda hooks (önceden tanımlı event tetikleyiciler) bulunmaz. Ancak middleware yapısı, hooks gibi davranarak CRUD işlemlerini yakalamanıza olanak tanır. Ek olarak, @prisma/client ile kullanılan yazılım desenleri sayesinde programatik olarak after/before mantığını oluşturabilirsiniz.
Ortak Hook (Before/After Save) Nasıl Yazılır?
prisma.$use(async (params, next) => {
// Before Save Hook
if (params.action === "create" && params.model === "User") {
params.args.data.createdAt = new Date();
params.args.data.updatedAt = new Date();
}
const result = await next(params);
// After Save Hook
if (["create", "update"].includes(params.action) && params.model === "User") {
console.log("Kullanıcı kaydı güncellendi veya oluşturuldu.");
}
return result;
});
Bu örnekte hem kullanıcı oluşturulmadan önce (before save) tarih alanlarını set ediyor, hem de işlem sonrasında işlemin başarılı olduğunu console.log ile bildiriyoruz.
Sonuç
Prisma ORM middlewares ve hooks sayesinde Node.js projelerinde veri tabanı işlemleri üzerinde tam kontrol sağlayabilir, güvenlik ve izlenebilirlik kolayca eklenebilir. Prisma ORM middlewares ve hooks kavramlarını doğru ve etkin kullanmak, modern uygulamalarınızın sürdürülebilir ve bakımı kolay olmasını sağlar. Bu yapılar sayesinde tekrarlayan kodlardan kurtulup uygulamanıza kalite katabilirsiniz.

Yorum Gönder