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

查看:103
本文介绍了关于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代码?
求大神解答,感激不尽!!!

解决方案

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

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

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

这篇关于关于node http.request中处理response方式的疑问的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆