1

我想将 POST 方法的请求正文中的 JSON 数据发送到将用 node.js 编写的服务器。我试过这样的代码;

var http = require('http');
http.createServer(function (req, res) {
    console.log(req.body)
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');

我已经用 curl 测试了它;

curl -i -v -X POST -d '{"a":5}' http://127.0.0.1:1337 -H "content-type:application/json"

但它说身体是未定义的。

有没有办法从请求中获取 JSON 数据?

谢谢!

4

1 回答 1

3

Node.js 是非常低级的开箱即用。要么您必须自己捕获请求正文,要么使用connect之类的东西。

DIY:

var http = require('http');
http.createServer(function (req, res) {
    var body = '';
    req.on('data', function(data) {
        body += data;
    });
    req.on('end', function() {
        console.log(body);
    });
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');

连接:

var connect = require('connect');
connect()
    .use(connect.bodyParser())
    .use(function(req, res) {
        console.log(req.body);
    })
   .listen(3000);
于 2012-08-09T10:36:26.843 回答