【问题标题】:Unable to retrieve key value from object using ejs无法使用 ejs 从对象中检索键值
【发布时间】:2019-10-24 06:26:55
【问题描述】:

目前正在学习 express,但无法获得价值,我不确定我到底做错了什么。任何帮助表示赞赏

我无法获取通过 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>
<% } %>

【问题讨论】:

    标签: node.js express ejs


    【解决方案1】:

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

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

    【讨论】:

    • 我也是这样做的。在我的情况下,数组进入数据字段。所以每当我运行时,我都会得到 data is not defined 错误..
    • @JaynaTanawala 你能问这个问题吗?我需要查看您的代码示例以提供帮助。
    猜你喜欢
    • 2015-08-09
    • 2014-05-25
    • 2017-11-19
    • 2022-01-06
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多