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

为何使用Postman调用Node.js POST接口时返回全null值?

问题核心原因
  • 缺少Express的JSON请求体解析能力:Express框架本身不会自动处理POST请求中携带的JSON格式参数,若未在服务端配置对应的解析规则,req.body 默认值为 undefined,代码中从req.body解构出的三个业务字段全为空值,插入数据库时就会被写入null,最终就会出现自增主键book_id正常生成、其余三个业务字段全为null的返回结果。
  • 次要可能:Postman请求配置不匹配,比如Body选择了非raw JSON的格式,导致服务端无法正确识别传入的参数。
分步解决方法
  1. 补全请求体解析中间件
    在所有业务路由注册之前,挂载Express内置的JSON解析中间件,注意中间件的挂载顺序必须早于POST路由的定义,否则不会生效:
    const express = require('express');
    const app = express();
    
    // 必须写在所有app.post/app.get等路由定义之前
    app.use(express.json());
    
    如果使用的Express版本低于4.16,需要额外安装body-parser依赖,通过app.use(bodyParser.json())实现相同的JSON解析能力。
  2. 校验Postman请求配置
    打开对应POST请求的Body设置栏,确认选择raw选项,右侧格式下拉框选择JSON,确保请求自动携带的Content-Type: application/json请求头和服务端解析规则匹配,避免因为格式选错导致参数无法传递。
  3. 快速定位验证
    可以在接口逻辑的最开头加一行日志输出,快速确认问题点:
    console.log("服务端解析到的请求体:", req.body);
    
    • 如果控制台输出为undefined:就是JSON解析中间件没有正确挂载,检查中间件的代码顺序即可
    • 如果控制台能正常打印你在Postman传入的三个参数,但入库后还是null:再去排查数据库表的字段默认值、类型匹配问题即可

内容的提问来源于stack exchange,提问作者Anıl Atasoy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 07:45:05