无法从Response nodejs中删除属性

时间:2018-01-06 16:43:44

标签: node.js mongodb mongoose

我正在发送查找请求并获得属性“items”的响应,这是一个数组。 我不想在最后发送带有响应的数组。我尝试使用delete object.items,但它发送了属性。将数组设置为[]也不起作用。

修改

是的,对不起。我用findById()获取产品。因此,类别不是数组而是对象。所以我不必迭代它。但物品属性不会被删除。这是实际的代码:

    router.post('/products', auth, function (req, res) {
        var catId = req.body.catId;

        Category.getProductsOfCategory(catId, function (err, category) {
            if (err) {
                res.send({status: false, data: err})
            } else {

                if (category) {
                    // do not send items with the product
                        for (var i = 0; i < category.products.length; i++) {
                            var itemCount = 0;

                            // get only the count of items where no selldate was set
                            for (var k = 0; k < category.products[i].items.length; k++) {
                                if (!category.products[i].items[k].selldate) {
                                    itemCount++;
                                }
                            }

                            category.products[i].itemCount = itemCount;
                            delete category.products[i].items;
                        }



                    res.send({status: true, data: category.products})
                } else {
                    res.send({status: false, data: 'not found'})
                }
            }
        })
    });

1 个答案:

答案 0 :(得分:0)

category文档转换为普通对象

if (category) {
    category = category.toObject() 
    // or 
    category = category._doc
    //...
}