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



目前正在学习快递,但无法获得值,我不确定我到底做错了什么。任何帮助不胜感激

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

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

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

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

购物车.json

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

购物车.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 或数量的键值

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

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

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

最新更新