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

注册表单提交至Express/PostgreSQL时数据为Null的问题求助

问题:注册表单提交后所有字段为Null,数据库插入全Null记录

我正尝试通过前端注册表单收集用户信息并保存到PostgreSQL数据库,但每次提交后,终端输出的用户对象所有字段均为Null,数据库中也插入了全Null的记录。

终端输出示例:

{"customer_id":6,"first_name":null,"last_name":null,"e_mail":null,"password":null,"password2":null,"is_verified":false}
The user is already registered
{"customer_id":7,"first_name":null,"last_name":null,"e_mail":null,"password":null,"password2":null,"is_verified":false}

PostgreSQL数据库(表名customers)中也存在全Null的行。

我使用Express作为后端框架,以下是server.js、register.html、users.js的代码片段,请问需要修改或添加哪些代码才能获取正确的用户输入?


解决方案

1. 给Express添加表单数据解析中间件

Express默认不会自动解析表单提交的数据,需根据表单类型添加对应中间件:

  • 若表单为application/x-www-form-urlencoded(普通文本表单),在server.js中添加:
    app.use(express.urlencoded({ extended: true }));
    
  • 若表单为multipart/form-data(含文件上传场景),先安装multer依赖:
    npm install multer
    
    再在server.js中配置:
    const multer = require('multer');
    const upload = multer();
    app.use(upload.none()); // 解析不带文件的multipart表单数据
    

2. 匹配前端表单name属性与后端字段名

确保register.html中输入框的name属性和后端读取的字段名完全一致:
前端示例:

<input type="text" name="first_name" placeholder="名">
<input type="text" name="last_name" placeholder="姓">
<input type="email" name="e_mail" placeholder="邮箱">
<input type="password" name="password" placeholder="密码">
<input type="password" name="password2" placeholder="确认密码">

后端users.js中对应读取:

const { first_name, last_name, e_mail, password, password2 } = req.body;

3. 确认后端正确从req.body取值

检查users.js的注册逻辑,确保直接从req.body获取用户输入,而非使用空值或未初始化变量:
正确示例:

const newUser = {
  first_name: req.body.first_name,
  last_name: req.body.last_name,
  e_mail: req.body.e_mail,
  password: req.body.password,
  password2: req.body.password2,
  is_verified: false
};

4. 验证表单提交配置

确保前端表单的提交方式和路径与后端路由匹配:

<form action="/register" method="POST">
  <!-- 表单输入项 -->
  <button type="submit">注册</button>
</form>

后端server.js需对应注册路由:

app.post('/register', require('./users').register); // 假设register是处理注册的函数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 08:25:07