我正在使用node.js中的请求库,它下载HTML正文响应,但以块的形式下载。目前,我只是将它们连接到一个dataChunks
变量中,并使用一个拼凑在一起的测试来查看它何时全部下载。然而,我略读了一下流手册,这似乎是使用流来获取数据块的合适情况。我不完全明白我该如何做到这一点,所以我会感谢任何帮助。相关代码如下:
var dataChunks = "";
request.get({ url: baseUrl + path })
.on("error", function(err) { throw new Error(err); })
.on("response", function(res) {
if (res.statusCode === 200) {
res.on("data", function(data) {
var dataString, dt;
dataChunks += (dataString = data.toString());
if ((dt = dataString.slice(-100).trimRight()).lastIndexOf("</html>") === dt.length - 7) {
// do stuff with dataChunks
}
});
}
});
提前感谢您的帮助
您不需要流。来自请求自述文件:
var request = require('request');
request('http://www.google.com', function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body) // Show the HTML for the Google homepage.
}
})
流的例子:
request('http://google.com/doodle.png').pipe(fs.createWriteStream('doodle.png'))