【发布时间】:2019-04-20 21:33:33
【问题描述】:
因此,在尝试更新 mongoose 中的文档时,我意识到当我对使用 Model.findOne() 获得的文档执行 obj.key=value 时,它不会将属性分配给它的值。但是在尝试了 obj.set(key, value) 之后,该属性在文档中被分配给它的值。那为什么呢?通常,当我对对象执行第一种方法时,对象会获取属性。 .set() 函数是什么?跟猫鼬有关系吗?
//this works
async function updateItem(){
let updatedItem = await Item.findOne({name:req.body.itemName});
Object.entries(req.body).forEach(elem=>{
if(elem[0]!=="itemName"){
updatedItem.set(elem[0], elem[1]);
};
});
};
updateItem();
});
//this doesn't work
async function updateItem(){
let updatedItem = await Item.findOne({name:req.body.itemName});
Object.entries(req.body).forEach(elem=>{
if(elem[0]!=="itemName"){
updatedItem.elem[0] = elem[1];
};
});
};
updateItem();
});
【问题讨论】:
-
我不确定它是否与反应式编程有关,但这里解释了它在 Vuejs 中的工作原理vuejs.org/v2/guide/reactivity.html
-
我现在不明白了。这是因为 getter 和 setter。谢谢。
标签: javascript arrays json object ecmascript-6