有没有办法下载然后在控制台日志中显示gzip文件而无需在文本文件中写入内容。
request(URL, (err, res, body) => {
console.log(body);
});
答案 0 :(得分:1)
最简单的方法是使用流。您可以简单地pipe request to zlib(标准模块)对其进行解压缩。然后将其传送到process.stdout
,让它像这样登录到控制台:
const request = require('request');
const zlib = require('zlib');
const gunzip = zlib.createGunzip();
request('http://example.com/someFile.txt.gz').pipe(gunzip).pipe(process.stdout);

注意:如果文件很大,则会在下载和处理数据时将其记录在块中。
如果您想等到所有数据都下载完毕后再登录,可以使用stream-to-promise:
const gunzip = zlib.createGunzip();
const streamToPromise = require('stream-to-promise');
const unzipStream = request('http://example.com/someFile.txt.gz').pipe(gunzip);
streamToPromise(unzipStream)
// `data` is a buffer here, so you need to call .toString() to log it
.then(data => console.log(data.toString()))
.catch(err => console.error(err));