Express.js发布请求给出了undefined

时间:2013-12-06 13:48:42

标签: node.js express rest-client

我曾经使用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}': '' }

  });

1 个答案:

答案 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"