在Node.js中请求,解压缩和打开数据

时间:2019-05-09 13:23:11

标签: node.js stream unzip

我想从URL获取一个zip文件,将其提取,然后保存提取的文件并同时处理该文件。 如果我使用unzip.Extract(),则它将下载文件。如果我使用unzip.Parse(),则它将处理下载的文件(如果已经存在)。但是以这种方式,我必须运行我的代码2x并注释掉其中一个命令,所以这不是一个好的解决方案。

我尝试在第一次完成时运行2.命令,但是它从未终止:

https.get(url, function (response) {
            var stream = response.pipe(unzip.Extract({path:"./"}));
            stream.on('finish', function () {
                response.pipe(unzip.Parse())
                    .on('entry', function (entry) {
                        var json = JSON.parse(fs.readFileSync(entry.path));
                        resolve(json.features[0]);
                    });
            });
        });

我还尝试使用adm-zip和zlib解决问题。

这是我的原始代码:

https.get(url, function (response) {
            response.pipe(unzip.Extract({path:"./"}));
            response.pipe(unzip.Parse())
                .on('entry', function (entry) {
                    var json = JSON.parse(fs.readFileSync(entry.path));
                    resolve(json.features[0]);
                });
        });

0 个答案:

没有答案