从node.js中的http请求获取数据

时间:2014-08-13 03:33:55

标签: node.js stream

当我使用response.on('data' callback)时,我会在收到数据后立即获取数据。这导致数据逐个通过。

我希望将所有数据合在一起并拨打parser.parseString(chunk,parseData)。我该如何实现这一目标?

以下是我的代码。

var request = https.request(options, function(response) {
    response.setEncoding('utf8');

    response.on('data', function (chunk) {
    console.log('BODY: ', chunk);

    //parser.parseString(chunk,parseData);       
    });

    response.on('end', function () {
        console.log('The end');
    });

});

request.on('error', function(e) {
    console.log('problem with request: ' + e.message);
});

request.write(str);    
request.end();
}

http://nodejs.org/api/stream.html#stream_event_data

2 个答案:

答案 0 :(得分:2)

您应该创建变量,您将在其中编写文档数据

var document;
response.on('data', function(chunk) {
    document += chunk;
}

然后你应该在文档末尾触发解析器

response.on('end', function() {
    parser.parseString(document, parseData);
});

答案 1 :(得分:1)

如果您考虑或正在使用Express框架,请查看正文解析器中间件是否满足您的需求(c.f。https://github.com/expressjs/body-parser