Node.js req.body是空白的

时间:2016-06-23 01:03:45

标签: javascript node.js express

我已经尝试了Node "req is not defined"req.body is empty when making a post request via http.request上的线程,但问题仍然存在。

服务器端代码:

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):

post request response

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

listening
{}

2 个答案:

答案 0 :(得分:5)

我刚试过你的代码..这很好......

您缺少的是在请求中添加标题。

Content-Type标题添加为application/json enter image description here

答案 1 :(得分:2)

要扩展另一个答案,这是正确的,正文解析器会在尝试解析HTTP正文之前检查Content-Type

如果您想要更改此行为,您可以让body-parser尝试将任何输入解析为json,而不管Content-Type

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

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