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

如何将Express服务端数据渲染到HTML表格并实现自动新增行

res.render 每次调用都会生成完整的HTML页面返回给客户端,无法做到多次调用累加表格行,你需要一次性把所有要展示的数据传递给模板,用模板循环语法生成所有表格行即可,实现步骤如下:

第一步:修改服务端 server.js 代码

调整数据存储格式,将所有查询到的条目整理为对象数组后传递给模板:

app.get('/index', (req, res) => {
    const dataList = []
    const cursor = dbo.collection('collection').find()
    cursor.forEach(function (doc, err) {
        if (err) throw err;
        // 每个文档对应一行表格的数据,存为对象
        dataList.push({
            description: doc.name,
            adress: doc.adress
        })
    }, function () {
        // 将整个数据数组传递给模板
        res.render('index', { dataList })
    })
})
第二步:修改 index.html 模板代码

删除原本写死的单行表格代码,使用模板引擎的循环语法遍历dataList数组,有多少条数据就自动生成多少行表格。不同模板引擎的循环语法略有区别,常用场景示例如下:

  • 如果你使用的是EJS模板:
<table>
    <tr>
        <th>Description</th>
        <th>Adress</th>
    </tr>
    <% dataList.forEach(item => { %>
    <tr>
        <td><%= item.description %></td>
        <td><%= item.adress %></td>
    </tr>
    <% }) %>
</table>
  • 如果你使用的是Nunjucks/Mustache类原生支持{{}}标记的模板:
<table>
    <tr>
        <th>Description</th>
        <th>Adress</th>
    </tr>
    {% for item in dataList %}
    <tr>
        <td>{{item.description}}</td>
        <td>{{item.adress}}</td>
    </tr>
    {% endfor %}
</table>

内容的提问来源于stack exchange,提问作者renshi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 01:24:03