如何在req.body中的一个对象数组中迭代项?

时间:2017-01-27 04:07:39

标签: arrays node.js object express request

我有这个变量,我需要填写使用请求正文

        var orderItem = {
            userPurchased: body.userPurchased,
            products:[{
                product: body.products.product,
                size: body.products.size,
                quantity: body.products.quantity,
                subTotal: body.products.subTotal
            }],
            totalQuantity: body.totalQuantity,
            totalPrice: body.totalPrice,
            otherShipAd: body.otherShipAd,
            modeOfPayment: body.modeOfPayment
        };

这是我的请求正文。

enter image description here

这里的问题是请求体是一个对象数组,如果我以我在顶部显示的方式访问它,它将是未定义的。如果我将数组的数量设置为body.products.product [0],则所有记录都是相同的。

有人能告诉我如何迭代所有产品并将其放入变量中吗?

2 个答案:

答案 0 :(得分:1)

我不确定我是否了解您的困境,但是您的目标对象似乎与您的来源似乎有完全相同的架构,为什么不是您将该值分配给var?

var orderItem = request.body;

让我们说你还有一些理由需要从request.body创建数组副本吗?这仍然只是将request.body数组分配给目标变量的一行:

var orderItem = {
        userPurchased: body.userPurchased,
        products: body.products,
        totalQuantity: body.totalQuantity,
        totalPrice: body.totalPrice,
        otherShipAd: body.otherShipAd,
        modeOfPayment: body.modeOfPayment
    }; 

答案 1 :(得分:0)

根据您的控制台响应

你应该使用:

 var product;
    for(var i=0; i< body.products.length;i++)
    { product = [];
       product[product] =body.products[i].product[0];
    // set all properties
    }
    orderItem.products.push(product);