Mongoose Virtual Fields ile Getter ve Setter
Mongoose Virtual Fields ile Getter ve Setter
Mongoose Virtual Fields ve getter/setter fonksiyonları, MongoDB ile çalışan Node.js geliştiricileri için büyük kolaylıklar sunar. Birçok yazılım projesinde, veritabanında fiziksel olarak saklanmayan ancak dinamik olarak hesaplanması gereken alanlara ihtiyaç duyulur. İşte bu noktada Mongoose'un "virtual" özelliği devreye girer ve yazılım mimarisini hem temiz hem de esnek hale getirir.
Mongoose Virtual Fields Nedir?
Mongoose Virtual Fields, bir dokümana ait veriyi, gerçekten veritabanına kaydetmeden dinamik olarak eklememizi sağlar. Örneğin, bir kullanıcının tam adını (ad ve soyadı birleştirerek) depolamadan göstermek için kullanılabilir. Mongoose Virtual Fields özelliği getter ve setter ile birlikte kullanılabilir. Böylece, sadece okumakla kalmaz, aynı zamanda verinin dışarıdan özel bir formatta ayarlanmasını da sağlayabilirsiniz.
Getter ve Setter Fonksiyonları Nasıl Çalışır?
Getter fonksiyonu, sanal alanın değerini hesaplayıp geri döndürürken kullanılır. Setter fonksiyonu ise, bu alana dışarıdan bir değer atandığında ilgili fiziksel alanlara otomatik olarak veri dağıtmak için kullanılır. Bu yöntem, Mongoose ile oluşturulan modellerinizde verileri daha esnek biçimde yönetmenize yardımcı olur.
const mongoose = require("mongoose");
const userSchema = new mongoose.Schema({
ad: String,
soyad: String
});
// Virtual field tanımlama
userSchema.virtual('tamAd')
.get(function () {
return `${this.ad} ${this.soyad}`;
})
.set(function (value) {
const parcalar = value.split(' ');
this.ad = parcalar[0];
this.soyad = parcalar.slice(1).join(' ');
});
const User = mongoose.model('User', userSchema);
// Kullanım örneği
yeniKullanici = new User();
yeniKullanici.tamAd = 'Ali Veli';
console.log(yeniKullanici.ad); // Ali
console.log(yeniKullanici.soyad); // Veli
console.log(yeniKullanici.tamAd); // Ali Veli
Virtual Fields Kullanmanın Avantajları
Mongoose Virtual Fields ve getter/setter fonksiyonları ile kodunuz:
- Daha okunabilir ve bakımı kolay olur.
- Karmaşık hesaplamaları model katmanında saklayabilirsiniz.
- Veri tutarlılığı arttırır; örneğin isim ayrımı, güncelleme işlemlerini kolaylaştırır.
Sonuç
Node.js ve Mongoose ile güçlendirilmiş uygulamalarda Mongoose Virtual Fields ile getter ve setter fonksiyonlarını kullanmak projelerinize temizlik, esneklik ve sürdürülebilirlik katar. Virtual alanlar sayesinde model yapınızı genişletip modern uygulamalar geliştirebilirsiniz. Özellikle karmaşık veri ilişkilerinde, yazılım mimarisinin yalın kalmasını ve daha verimli veri yönetimini sağlar.

Yorum Gönder