You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Node.js+Express中用Pug/Jade遍历对象数组并渲染列表

解决Pug渲染对象数组为HTML列表的问题

嘿,这事儿很简单,我帮你捋清楚怎么操作!

首先,你已经在app.js里把数据库查询到的对象数组results以storeItems的名字传给了Pug模板,这一步是对的。接下来只需要在Pug里用each迭代这个数组,提取你需要的键值对就行。

基础用法:渲染单个属性

假设你的storeItems数组里的每个对象长这样:

// 示例对象结构
{
  id: 1,
  itemName: "无线耳机",
  price: 199
}

如果只想渲染商品名称,直接在Pug里这么写:

ul
  each item in storeItems
    li= item.itemName

这和官方示例的逻辑完全一致,只是把数组元素换成了对象,然后取对应的属性值。

进阶用法:渲染多个属性

要是需要同时展示多个键值(比如名称+价格),可以在li标签里拆分内容,或者用模板字符串拼接:

ul.product-list
  each item in storeItems
    li.product-item
      span= item.itemName
      span.price= `¥${item.price}`
      // 或者直接用文本拼接
      // li= `${item.itemName} - 售价¥${item.price}`

优化:处理空数组情况

为了避免数据库没查到数据时页面出现空列表,建议加个条件判断:

if storeItems.length > 0
  ul.product-list
    each item in storeItems
      li= `${item.itemName} - 售价¥${item.price}`
else
  p.text-center 暂无商品信息

只要你确保storeItems确实是有效的对象数组(你已经用console.log验证过了),这样写完就能正常渲染出对应的HTML列表啦!

内容的提问来源于stack exchange,提问作者J.G.Sable

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:33:01