我如何读取gzip中的json文件?

有一个档案格式的gzip。 有json文件。 我们需要依次获取每个文件,使用它和其他gzip中写入的内容。 我意识到我需要使用标准库createReadStream和zlib。

那么,按照https://nodejs.org/api/zlib.html#zlib_examples中的示例,可以为单个gzip文件完成以下过程:

var unzip = zlib.createUnzip(); var fs = require('fs'); var inp = fs.createReadStream('input.json.gz'); var out = fs.createWriteStream('output.json'); inp.pipe(unzip).pipe(out); 

但是,如果gzip中有多个文件,我不知道如何去做。 我无法find文件来做到这一点,唯一的办法,我发现多个文件可以从节点中的gzip文件解压缩,如果他们首先tar'd。 在这里可以find一个在节点中解压缩tar.gz的过程。 在这个例子之后,我们可以这样做:

 var unzip = zlib.createUnzip(); var fs = require('fs'); var tar = require('tar-fs'); var inp = fs.createReadStream('input.tar.gz'); var out = './output'; // output directory inp.pipe(unzip).pipe(tar.extract(out));