giriiş
elde etmekVe ayarlamakTemel ham belgedeki anahtarlar ve değerler tarafından tanımlanan özelliklerin nasıl alınıp ayarlanacağını değiştirmenize yardımcı olurlar.
ayarlayıcılar
ayarlamak Mongoose belge verilerini ham MongoDB belgesine ulaşmadan ve gerçek bir anahtara değer olarak ayarlanmadan önce dönüştürmenize olanak tanırlar.
Diyelim ki bir web sitesi için kullanıcı kaydı uyguluyorsunuz. Kullanıcılar, MongoDB'de saklanan bir e-posta adresi ve parola sağlıyor. E-posta, bir e-posta adresinin birden fazla hesaba sahip olmaması için küçük harfe dönüştürmek istediğiniz bir dizedir. Örneğin, [email protected] adresi, [email protected] ve [email protected] üzerinden iki hesap için kaydedilebilir.
Mongoose ayarlayıcıları aracılığıyla e-postaların küçük harf normalizasyonunu kolayca yapılandırabilirsiniz. Aşağıdaki kod parçacığında, ayarlayıcıların (ve alıcıların) Şema'da tanımlandığını görebilirsiniz:
function toLower (v) {
return v.toLowerCase();
}
var UserSchema = new Schema({
email: { type: String, set: toLower }
});
var User = mongoose.model('User', UserSchema);
var user = new User({email: '[email protected]'});
console.log(user.email); // '[email protected]'Yukarıda görebileceğiniz gibi, setter'lar ham mongodb belgesine ulaşmadan önce verileri dönüştürmenize ve gerçek bir anahtara değer olarak ayarlamanıza olanak tanır.
alıcılar
elde etmek Ham MongoDB belgesinden gördüklerinize doğru gezinirken veri görünümlerini dönüştürmenize olanak tanırlar.
Diyelim ki bir kredi kartı numarası saklıyorsunuz ve son 4 hanesi hariç her şeyi Mongoose kullanıcısından gizlemek istiyorsunuz. Bunu, alıcıyı şu şekilde tanımlayarak yapabilirsiniz (alıcıların Şema'da tanımlandığını unutmayın):
function obfuscate (cc) {
return '****-****-****-' + cc.slice(cc.length-4, cc.length);
}
var AccountSchema = new Schema({
creditCardNumber: { type: String, get: obfuscate }
});
var Account = mongoose.model('Account', AccountSchema);
Account.findById( someId, function (err, found) {
console.log(found.creditCardNumber); // '****-****-****-1234'
});Sonuç
Ayarlayıcılar, altta yatan ham verileri değiştirmek için tasarlanmıştır. Geterlar ise altta yatan ham verileri kullanıcının görmeyi beklediği hale dönüştürmek (ancak ham veri düzeyinde değiştirmek için değil) için tasarlanmıştır. Her ikisi de Şema tanımında tanımlanmıştır.









