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

app.post()无法注册POST请求:Express后端接收表单数据失败求助

问题排查与修复方案

核心问题:Express路由未关联到HTTP/2服务器

你创建了Express实例app并定义了app.post('/Joining')路由,但同时单独启动了一个独立的HTTP/2服务器server。浏览器发送的POST请求被HTTP/2服务器的stream事件处理器直接接管,返回了public/joining.html,根本没进入Express的路由逻辑。

修复方法

把Express挂载到HTTP/2服务器上,替换掉手动处理stream的代码:

// 删除原来整个server.on("stream", ...)代码块
// 改用Express处理所有HTTP/2请求
server.on('request', app);

字段名大小写不匹配

  • HTML表单中房间码输入框的name属性是roomCode(小写r开头)
  • 后端代码里用req.body.RoomCode(大写R开头),导致无法获取对应值

修复方法

统一字段命名,后端代码改为:

var UserName = req.body.UserName; 
var RoomCode = req.body.roomCode;    

数据库字段名不匹配

  • 你创建的表结构是CREATE TABLE IF NOT EXISTS emp(UserName TEXT, roomCode TEXT),字段为roomCode
  • 但插入语句里用了RoomCode(大写R),甚至相关片段里误用了不存在的GameCode字段

修复方法

统一数据库字段名,修正插入语句:

db.run('INSERT INTO emp(UserName, roomCode) VALUES(?,?)', [req.body.UserName, req.body.roomCode], function(err) {
  if (err) {
    return console.log(err.message);
  }
  console.log("New user has been added");
  res.send(`New user has been added into the database with code = ${req.body.roomCode} and Name = ${req.body.UserName}`);
});

额外响应错误

响应文本里的req.body.GameCode是不存在的字段,需改为req.body.roomCode,上述修复已包含此修正。

修复后关键代码片段

// 替换原HTTP/2服务器的stream处理逻辑
server.on('request', app);

server.listen(webport, () => {
  console.log(`HTTP/2 server started on port ${webport}`);
});

// 修正后的POST路由
app.post('/Joining', (req, res) => { 
  const UserName = req.body.UserName; 
  const RoomCode = req.body.roomCode;    
  db.serialize(()=>{
      db.run('INSERT INTO emp(UserName, roomCode) VALUES(?,?)', [UserName, RoomCode], function(err) {
        if (err) {
          return console.log(err.message);
        }
        console.log("New user has been added");
        res.send(`New user has been added into the database with code = ${RoomCode} and Name = ${UserName}`);
      });
  console.log(` ${UserName}`)
  console.log(` ${RoomCode}`)
  });
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 16:32:53