首页 文章

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

提问于
浏览
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数据?

谢谢!

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

相关问题