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

时间:2012-08-09 10:20:25

标签: node.js httpserver

我想将POST方法的请求体中的JSON数据发送到将在node.js中编写的服务器。我尝试过像<; p>这样的代码

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数据?

感谢!

1 个答案:

答案 0 :(得分: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);