我曾经使用express.js解析post请求体,但是现在当我尝试记录req.body.gsm
时它开始给出undefined。 {"gsm":"10"}
这是我的帖子数据,我向其他客户提出请求。
app.configure(function(){
app.use(express.bodyParser());
app.use(app.router);
app.use(express.static(__dirname + '/public'));
});
app.post('/gsm', function (req, res) {
var gsm = req.body.gsm; //gsm is undefined when i log
var body = req.body; //this is the log of body { '{\n"gsm":"10"\n}': '' }
});
答案 0 :(得分:1)
看起来你是以字符串形式接收正文,而不是JSON对象。仅当设置了Content-type: application/json
标头时,Express才会将正文解析为完整的JSON对象,请参阅connect's json
middleware的源代码。
只需使用Content-type: application/json
标题发送相同的请求。
用于测试此示例的curl脚本示例:
$ curl -XPOST -H "Content-type: application/json" -d '{"gsm":"10"}' "http://localhost/gsm"