如何使用zlib.gunzip将缓冲区变成可读数据?

问题描述 投票:0回答:2

我试图在nodejs中压缩一个缓冲区,但它一直返回未定义的结果。下面是我的代码:

var options = {
    host: 'api.twitter.com',
    port: 443,
    path: '/2/tweets/search/recent?query=from:twitterdev',
    method: 'GET',
    headers: { "authorization": `Bearer ${token}` }
};

var req = https.request(options, function(res) {
    console.log("statusCode: ", res.statusCode);
    console.log("headers: ", res.headers);
    var data = []
    res.on('data', function(d) {
        data.push(d);
    }).on('end',function(){
        var info = Buffer.concat(data)
        console.log(data) <--- This prints the buffer, same with printing info
        zlib.gunzip(info,function(err,buf){
            console.log(buf) <--- Returns undefined
            var o = buf.toString()
            var parsedData = JSON.parse(o)
            console.log(parsedData)
        })
    })

})

req.end();

我不理解的原因是因为

var info = Buffer.concat(data)
显示了缓冲区,但它说从gunzip返回的缓冲区未定义。不知道缓冲区是否就在那里。我找不到太多关于枪压缩的信息,但我确实发现这个线程没有太多帮助如何正确地将缓冲区对象转换为字符串?

node.js twitter zlib
2个回答
1
投票

我现在也有同样的问题。 我的解决方案是:

o = zlib.gunzipSync( info );

这对你有用吗?


0
投票

@Juergen 在aircable[dot]co 上寻找售前/支持答案 请回复最近的电子邮件:产品是否仍然可用。 谢谢

© www.soinside.com 2019 - 2024. All rights reserved.