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

Postman返回500 internal server error及Express POST接口报错排查

问题原因

你遇到的报错核心有两种可能:一是Express默认未开启请求体解析功能,未配置对应中间件时无法识别POST提交的JSON数据,导致req.body未定义;二是代码里可能漏写req.前缀,直接调用了不存在的body变量。

解决步骤

  1. 补全Express请求体解析配置
    如果你使用的是Express 4.16及以上版本,框架内置了JSON解析中间件,无需额外安装依赖,只需在app.use(express.static(__dirname))行之后新增app.use(express.json())配置即可。修改后的完整代码如下:
var express = require('express')
var app = express()
app.use(express.static(__dirname))
// 新增JSON请求体解析中间件,用来解析POST提交的JSON格式数据
app.use(express.json())
// 若后续需要接收x-www-form-urlencoded格式的表单数据,可额外添加以下配置
// app.use(express.urlencoded({ extended: true }))

var messages = [
    {
        name: 'Tim', message: 'Hemlo'},
        {name: 'Jane', message: 'Hoi'
    }
]
app.get('/messages', (req,res)=>{
  res.send(messages)
})
app.post('/messages', (req,res)=>{
    // 检查此处是否确实写的是req.body,不要漏写req.前缀
    console.log(req.body)
    res.sendStatus(200)
  })

app.listen(3008, () =>{
console.log('server listening') 
})
  1. 检查Postman请求配置
  • 进入POST请求的Headers标签页,确认存在Content-Type字段,值为application/json
  • 进入Body标签页,选择raw选项,右侧格式下拉框选择JSON,再填入你要提交的JSON数据:{"name": "jane", "message": "aaa"}

修改完成后重启Node服务,重新发起POST请求即可正常接收数据,返回200状态码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 17:06:07