Запрос, разархивировать и открыть данные в Node.js - PullRequest
0 голосов
/ 09 мая 2019

Я хотел бы получить zip-файл из URL-адреса, распаковать его, затем сохранить извлеченный файл и одновременно обработать файл. Если я использую 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]);
                });
        });
...