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

Node.js MySQL服务Postman POST请求报1048错误求助

解决Node.js MySQL服务POST请求参数为NULL的1048错误

问题分析

从错误信息和代码来看,核心问题是**req.body中的所有字段均为NULL**,导致SQL插入语句触发了MySQL的非空约束(Column 'fname' cannot be null)。本地MySQL客户端执行正常说明SQL逻辑和数据表结构无问题,故障点集中在Node.js服务对POST请求体的解析环节。

解决方案

1. 确保Express添加了请求体解析中间件

默认情况下,Express不会自动解析JSON或表单格式的请求体,必须手动添加以下中间件,否则req.body会是undefined或空对象,最终导致参数为NULL:

const express = require('express');
const app = express();

// 解析JSON格式的请求体
app.use(express.json());
// 解析URL编码的表单数据
app.use(express.urlencoded({ extended: true }));

// 你的路由代码...
app.get("/users", (req, res) => { /* ... */ });
app.post("/users", (req, res) => { /* ... */ });

2. 验证Postman的请求设置

确保Postman的请求配置与服务端解析逻辑匹配:

若使用JSON格式请求:

  • 在Headers标签中设置Content-Type: application/json
  • 在Body标签中选择raw,格式切换为JSON,输入参数的JSON结构:
    {
      "fname": "张三",
      "lname": "李四",
      "idnum": "10001",
      "phone": "13800138000",
      "email": "zhangsan@example.com"
    }
    

若使用表单格式请求:

  • 在Body标签中选择x-www-form-urlencoded或form-data,添加对应的键值对(键名需与req.body中的字段名完全一致:fname、lname等)

3. 额外排查点

  • 检查路由路径是否正确,确保Postman请求的URL与服务端定义的/users完全匹配
  • 核对参数名拼写,确保Postman中的参数名和req.body.fname等字段名无大小写或拼写错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 17:42:35