无法使用ejs从对象检索键值

时间:2019-06-09 16:40:52

标签: node.js express ejs

目前正在学习表达方式,但很难获得价值,我不确定自己到底在做什么错。感谢您的帮助

我无法从JSON文件中获取通过对象提供给视图的键值。

我可以显示1个键值totalPrice 但我无法检索产品ID或数量值。

我已经尝试了很多方法,在vs代码的调试模式下,我可以看到控制器中的cart.products确实解析为具有2个对象的数组。

我可以显示<%= cart %>和输出[object Object], [object Object]

cart.json

{  
   "products":[  
      {  
         "id":"7275",
         "qty":2
      },
      {  
         "id":"5697",
         "qty":2
      }
   ],
   "totalPrice":159.96
}

cart.js(控制器)

exports.getCart = (req, res, next) => {
    Cart.fetchAll((cart) => {
        res.render('shop/cart', {
            pageTitle: 'Cart',
            path: '/cart',
            cart: cart.products,
            totalPrice: cart.totalPrice
    });  
    })
}

(查看) 使用ejs引擎进行渲染,以使totalPrice正常工作

<p>Total price: <b>£<%= totalPrice %></p></b>

但是由于某些原因,即使输出了2个div,我也无法获得idqty。因此发现购物车中有2种产品,但无法检索id或qty的键值

<% for (let product in cart) { %>
<div>
   <%= product.id %>
   <%= product.qty %>
</div>
<% } %>

1 个答案:

答案 0 :(得分:0)

cart是一个对象数组,而不是对象本身。 试试这个:

<% cart.forEach(function(product) { %>
<div>
   <%= product.id %>
   <%= product.qty %>
</div>
<% }); %>