如何从node.js服务器的传入请求主体中排除JSON

我想发送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/'); 

我用curltesting过;

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

但它说身体是不确定的。

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

谢谢!

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