首页 > 关于node http.request中处理response方式的疑问

关于node http.request中处理response方式的疑问

本人新手,在学习写node爬虫的时候遇到了这样的问题:除了在data事件中处理http.IncomingMessage,还有哪些方式呢?
具体点:

const http = require('http');
const iconv = require('iconv-lite');

let fetchJueQi = http.get(options,
    (res) => {
        res.on('data', (chunk) => {
            let context = iconv.decode(chunk, 'gbk');
            console.log('内容'+ context);
        })
    });

假如用这个函数获取一个页面的html代码,可能会有几次console.log的输出,每次输出html代码的一段。
那么现在我怎么做,才能一次直接输出整个html代码?
求大神解答,感激不尽!!!


const http = require('http');
const iconv = require('iconv-lite');

let fetchJueQi = http.get(options,
    (res) => {
        let result = '';
        res.on('data', (chunk) => {
            let context = iconv.decode(chunk, 'gbk');
            result += context;
        });
        res.on('end', () => {
            console.log(result);
        });
    });

创建一个Buffer,每次data事件触发时用Buffer.concat连接两段数据
在end事件后整体输出

代码大概这样,随手写的没跑过,可能有错

        let content = new Buffer(0);
        res.on('data', (chunk) => {
            content = Buffer.concat([content, chunk]);
        }).on('end', () => {
            //这时content就是完整的了
        });
【热门文章】
【热门文章】