2014-04-28 21 views
15

Bir kullanıcı API'm ile kaydolduğunda, bir kullanıcı nesnesi döndürülür. Nesneyi döndürmeden önce karma şifreyi ve tuz özelliklerini kaldırırım. Ben nesne özellikleri hala var ve döndürülenNeden bir mongoose modelinin nesne özelliklerini silemiyorum?

delete user.salt; 
delete user.pass; 

çalıştıklarında Çünkü

user.salt = undefined; 
user.pass = undefined; 

kullanmak zorunda.

Neden?

cevap

21

delete kullanmak için: yerine sessiz başarısızlık in-your-face hataları olsun, böylece

Sen sıkı modunu kullanmalıdır Serbestçe işleyebildiğiniz:

user = user.toObject(); 
delete user.salt; 
delete user.pass; 
3

Yapılandırılamayan özellikler yeniden yapılandırılamaz veya silinemez. JavaScript nesne böylece toObject arayarak bir ovada içine modeli belgeyi dönüştürmek gerekir

(function() { 
    "use strict"; 
    var o = {}; 
    Object.defineProperty(o, "key", { 
     value: "value", 
     configurable: false, 
     writable: true, 
     enumerable: true 
    }); 
    delete o.key; 
})() 
// TypeError: Cannot delete property 'key' of #<Object> 
+0

Ben sıkı moddaydım ama hiçbir şey beni engellemedi Bunu yapamadım. @JohnnyHK benim günümü kurtardı –

İlgili konular