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

Node.js+Express连接MySQL时POST请求失效问题求助

问题解决思路

1. 修复SQL语句语法错误

你的INSERT语句存在两处致命语法问题:

  • 列名错误使用单引号':MySQL中列名需用**反引号``**包裹(或省略,只要列名不是关键字),单引号仅用于包裹字符串值。
  • 列名列表未闭合:INSERT语法要求列名列表用括号包裹后再跟VALUES关键字,你的代码漏掉了列名后的闭合括号)。

修正后的SQL语句:

const q = "INSERT INTO stage4.TOURIST (`Fname`, `Lname`, `Tourist_ID`, `age`, `gender`, `email`, `nationality`) VALUES (?, ?, ?, ?, ?, ?, ?)";

2. 修正参数绑定逻辑

你当前将values数组嵌套在另一个数组[values]中传递给db.query,会导致参数与SQL占位符数量不匹配(变成二维数组)。直接传递values数组即可:

db.query(q, values, (err, data) => {
    if (err) return res.json("SQL执行错误: " + err.message); // 返回具体错误信息便于排查
    return res.json("数据插入成功")
})

3. 排查路由匹配问题

虽然你返回的是自定义错误,但仍需确认:

  • 后端是否正确定义了POST路由(比如app.post('/your-endpoint', ...))
  • Postman请求的URL是否与后端路由完全匹配(注意路径、端口、是否存在前缀)

4. 输出具体错误信息

建议替换模糊的"404 error",返回err的具体内容,这样能直接定位SQL执行失败的原因,比如:

if (err) return res.json({ status: "fail", detail: err.message });

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 13:20:51