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

点击搜索按钮后表格无法显示的技术求助

问题排查与修复方案

1. 后端API数据返回错误

你的后端/api/appointments/:email路由中,查询完成后错误返回了Appointment模型本身,而非查询到的预约数据集合appointments,导致前端无法拿到有效数据渲染表格。

错误代码:

app.get('/api/appointments/:email', async(req, res, next) => {
    Appointment.find({'email': req.params.email}, function(err, appointments) {
        if (err) {
            console.log(err);
            next(err);
        } else {
            res.json(Appointment); // 错误:返回模型而非查询结果
        }
    })
})

修复后代码:

app.get('/api/appointments/:email', async(req, res, next) => {
    Appointment.find({'email': req.params.email}, function(err, appointments) {
        if (err) {
            console.log(err);
            next(err);
        } else {
            res.json(appointments); // 返回查询到的预约数组
        }
    })
})

2. 前端表单默认提交行为未阻止

搜索按钮是submit类型,点击时浏览器会默认触发表单提交,导致页面直接刷新,中断fetch请求的执行,表格还未渲染就丢失了状态。

错误代码:

document.getElementById('search').onclick = function() {
    const email = document.getElementById('email').value;
    // ... fetch逻辑
}

修复后代码:

document.getElementById('search').onclick = function(event) {
    event.preventDefault(); // 阻止表单默认提交行为,保留页面状态
    const email = document.getElementById('email').value;
    // ... fetch逻辑
}

3. DOM元素ID冲突(可选优化)

前端生成的表格使用了id="appointments",和承载表格的父div的ID重复,虽不直接影响当前功能,但可能引发后续DOM操作异常,建议修改表格ID:

修改后代码片段:

let tableString = `<br /><br /><h4 style="font-size: 32px; text-align: center; padding-bottom: 10px;">
    My Appointments</h4><table id="appointments-table" class="table"><tr><th>First name</th><th>Last name</th><th>Email</th><th>Service</th></tr>`;

额外排查建议

  • 打开浏览器开发者工具(F12),切换到Network面板,查看fetch请求的状态码和返回数据,确认API是否正常返回预约数组。
  • 在fetch链末尾添加错误捕获,方便定位请求失败原因:
fetch('/api/appointments/' + email)
    .then(res => res.json())
    .then(data => {
        // 表格渲染逻辑
    })
    .catch(err => console.error('请求出错:', err));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 09:10:34