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

如何在Node.js与MySQL中传递id至where子句及解决404报错

解决Node.js+MySQL查询时的404错误问题

问题背景

要在Node.js与MySQL中实现将id传入where子句进行查询,但前端请求出现404未找到错误,报错信息如下:

Viewer.jsx:19          GET http://localhost:4000/getDetailsFromCid/$%7Bcid%7D 404 (Not Found)

错误原因

  1. 模板字符串解析失败:前端fetch请求的URL使用了单引号,导致${cid}变量未被解析,直接作为字符串发送,转义后变成$%7Bcid%7D,请求路径无效。
  2. 接口路径不匹配:后端接口定义的路径是/api/getDetailsFromCid/:cid,但前端请求缺少/api前缀,导致后端无法匹配到对应接口。
  3. 错误处理方式错误:前端用.then()捕获错误,这是无效的,.then()接收的是成功响应的结果,错误需要用.catch()处理。

修复方案

前端代码(Viewer.jsx)修改

async function redeem(cid) {
  fetch(`http://localhost:4000/api/getDetailsFromCid/${cid}`)
    .then(response => response.json())
    .then(posts => {
      console.log("posts", posts)    
    })
    .catch(err => {
      console.log(err);
    })
}

修改点:

  • 将URL的单引号替换为反引号,确保模板字符串变量${cid}能被正确解析
  • 补上/api前缀,与后端接口路径保持一致
  • 把错误处理的.then()改为.catch(),正确捕获请求过程中的错误

后端代码(index.js)

后端代码本身没有问题,保持原样即可,但需确认:

  • Node.js服务运行在4000端口
  • 数据库连接配置正确,Details表存在且包含cid字段

验证

调用redeem函数并传入实际的cid值(如redeem(101)),此时请求地址会变为http://localhost:4000/api/getDetailsFromCid/101,与后端接口匹配,即可正常查询数据库并返回结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 23:15:35