[英]Deleting property of a argument object in nodejs
似乎我無法從Node.js中的另一個Promise從對象參數中刪除屬性
說我寫
Person.save().exec().then(function(err, object){
create(object) // Lets assume object looks like -> {person : "don"};
})
create: function(object){
delete object.person;
console.log(object) // It still has this name property
}
However, If I do a deep copy inside of nodejs code's create call it deleted that property.
相反,如果我寫類似
function a(){ let abc = { person: "don"}; xyz(abc)}
function xyz(param){
delete param.person;
console.log(param); ... It logs an empty object.
}
a()
它可以完成技巧而無需執行深層復制。 這是什么原因呢?
我想說這是由於MongoDB / Mongoose(看起來像您正在使用)對象的工作方式造成的。
您可以通過調用.toObject()
將Mongoose對象轉換為常規JS對象。 因此,例如:
Person.save().exec().then(function(err, person){
delete person.name; // won't work
var newPerson = person.toObject(); // newPerson is now a regular JS object
delete newPerson.name; // should work
console.log(newPerson.name); // should return undefined
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.