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

前端数据无法存入MySQL数据库:无法触发Express的POST函数

解决前端POST请求404及无法触发Express路由的问题

核心问题现象

  • 前端通过Axios发送POST请求到http://localhost:3400/Registration时返回404错误,无法进入Express的app.post("/Registration")回调函数;后端控制台仅输出jej your serveer is running!,未出现预期的hej日志。

分步解决方案

  1. 修复端口不匹配问题
    后端Express监听的是3001端口(代码中app.listen(3001)),但前端请求指向的是3400端口,这是直接导致404的原因。

    • 方案1:修改前端Axios请求地址为http://localhost:3001/Registration
    • 方案2:将后端app.listen(3001)改为app.listen(3400),确保前后端端口一致
  2. 修正数据库名称特殊字符问题
    数据库名称gdje_si_veceras?包含问号?,可能导致MySQL连接失败(即使路由触发也无法执行后续数据库操作),需修改为合规名称:

    • 将数据库名改为gdje_si_veceras,同时更新后端连接配置中的database字段
  3. 额外验证步骤(若端口修正后仍无效果)

    • 确认前端请求方法为POST,且请求头包含Content-Type: application/json(Axios默认已配置,手动封装时需检查)
    • 添加根路由测试服务器连通性:
      app.get("/", (req, res) => {
        res.send("Server is accessible");
      });
      
      访问http://localhost:对应端口/,若能收到响应则服务器正常,再重新测试POST请求

修正后的后端代码示例

const express = require('express')
const app = express()
const mysql = require('mysql')
const cors = require('cors')

app.use(cors())
app.use(express.json())

// 修正数据库名称,移除特殊字符问号
const db = mysql.createConnection({
    user: 'root',
    host: 'localhost',
    password: '',
    database: 'gdje_si_veceras'
})

app.post("/Registration", (req, res) => {
    console.log("hej")
    const { firstName, lastName, email, password } = req.body
    db.query(
        "INSERT INTO users(firstName, lastName, email, password) VALUES (?,?,?,?)",
        [firstName, lastName, email, password],
        (err, result) => {
            if (err) {
                console.log(err)
                return res.status(500).send("插入数据失败")
            }
            res.send("Values Inserted")
        }
    )
})

// 改为前端请求的3400端口,或保持3001并修改前端请求地址
app.listen(3400, () => {
    console.log("jej your server is running!")
})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 22:46:02