如何为现有对象创建新属性?

时间:2019-05-21 00:28:17

标签: node.js object properties sequelize.js

我无法为现有对象创建新属性。我有一种感觉,这是因为当您调用预先构建的查询方法之一时,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]
        }

可悲的是我没有收到任何错误,这使得调试真的很困难。

1 个答案:

答案 0 :(得分:0)

在我问一个问题之前,我应该更努力地在google上搜索。我刚刚找到了这个,它解决了我的问题。这是链接:Add Property to Object that is returned by Sequelize FindOne