我无法为现有对象创建新属性。我有一种感觉,这是因为当您调用预先构建的查询方法之一时,sequelize库会返回什么。
我试图通过使用点符号和方括号符号来创建现有对象的新属性。没有工作。我什至使用传播运算符创建了一个全新的javascript对象,然后尝试创建新属性,但仍然无法正常工作。
这是我的路由处理程序函数中的代码块,试图在对象的userCartItems数组中创建称为数量的新属性。
let userCartItemsWithOutProductInfo = await Item.findAll({where: {userId: req.user.id}})
let userCartItems = [];
let itemQuantity = []
for(i = 0; userCartItemsWithOutProductInfo.length > i; i++){
let product = await Product.findOne({where: {id: userCartItemsWithOutProductInfo[i].productId}})
// THIS DOES NOT WORK
product.quantity = userCartItemsWithOutProductInfo[i].quantity
userCartItems.push(product)
}
let finalizeCartItems = [...userCartItems]
for(i = 0; finalizeCartItems > i; i++){
// THIS DOES NOT WORK AS WELL
finalizeCartItems[i].quantity = itemQuantity[i]
}
可悲的是我没有收到任何错误,这使得调试真的很困难。
答案 0 :(得分:0)
在我问一个问题之前,我应该更努力地在google上搜索。我刚刚找到了这个,它解决了我的问题。这是链接:Add Property to Object that is returned by Sequelize FindOne