我想从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]);
});
});