Node.js req.body是空白的

我已经尝试了Node上的线程“req is not defined” , 当通过http.request和类似方法发出post请求时 , req.body是空的 ,但问题仍然存在。

服务器端代码:

var express = require('express'); var bodyParser = require('body-parser'); var validator = require('validator'); var app = express(); app.use(bodyParser.urlencoded({ extended: false })); app.use(bodyParser.json()); app.use(function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); next(); }); app.post('/sampleurl', function (req, res) { var reqbody = req.body; console.log(reqbody); }); app.listen(process.env.PORT); console.log("listening"); 

我发的(使用hurl.it):

发布请求 响应

我从服务器(console.log)取回的内容:

 listening {} 

我只是试过你的代码..这是完全没问题..

你缺less的是在请求中添加头文件。

Content-Type头添加为application/json 在这里输入图像描述

为了扩展另一个正确的答案,body-parser在尝试parsingHTTP正文之前检查Content-Type

如果你想改变这种行为,你可以让body-parser试图parsing任何input到json中,而不pipeContent-Type

 app.use(bodyParser.json({ type: '*' })); 

通配符*会告诉它尝试parsing任何types: https : //github.com/expressjs/body-parser#bodyparserjsonoptions