Node.js Express POST请求中req.body始终为空问题求助
解决Express POST请求中req.body始终为空的问题
你的Express代码和依赖配置本身没有问题,问题出在Windows命令提示符(cmd)下的curl命令语法错误。
Windows的cmd不支持用单引号'包裹字符串,而你当前的curl命令里用了单引号定义请求头和请求体,这会导致请求体无法被正确解析,最终req.body为空。
修正后的curl命令
在Windows cmd中执行以下命令:
curl.exe -X POST -H "content-type: application/json" -d "{\"message\":\"11111\"}" http://localhost:3000/post
关键修正点:
- 把请求头的单引号
'替换为双引号" - 请求体的外层用双引号包裹,内部的双引号需要转义为
\"(cmd中用反斜杠转义双引号)
额外验证方式
如果你用PowerShell测试,命令可以写成这样(PowerShell支持单引号,且内部双引号无需转义):
curl.exe -X POST -H 'content-type: application/json' -d '{"message":"11111"}' http://localhost:3000/post
执行修正后的命令后,你的Express服务就能正确解析req.body,控制台会输出{ message: '11111' },同时响应也会返回该JSON数据。
内容的提问来源于stack exchange,提问作者uhwgmxorg
相关产品推荐
相关产品推荐

