2016-10-10 10 views
1

Данные примера могут быть found here allCountries.zip, это форма базы данных почтового индекса geonames.org.С api/zlib узла Я получаю errno: -3, код: 'Z_DATA_ERROR'

Я бегу этот код,

const zlib = require('zlib'); 
const fs = require('fs'); 
const zip = fs.readFileSync('/tmp/allCountries.zip'); 

zlib.gunzip(zip, unzipData => console.log(unzipData)); 

Я получаю эту ошибку,

{ Error: incorrect header check 
    at Zlib._handle.onerror (zlib.js:356:17) errno: -3, code: 'Z_DATA_ERROR' } 

Я также попытался zlib.unzip, который возвращает ту же ошибку, и zlib.unzipSync, как это,

zlib.unzip(zip, unzipData => console.log(unzipData)); 

, который возвращает этот сброс,

zlib.js:536 
     throw error; 
    ^

Error: incorrect header check 
    at Zlib._handle.onerror (zlib.js:356:17) 
    at Unzip.Zlib._processChunk (zlib.js:526:30) 
    at Object.<anonymous> (/tmp/test.js:6:6) 
    at Module._compile (module.js:574:32) 
    at Object.Module._extensions..js (module.js:583:10) 
    at Module.load (module.js:491:32) 
    at tryModuleLoad (module.js:450:12) 
    at Function.Module._load (module.js:442:3) 
    at Module.runMain (module.js:608:10) 
    at run (bootstrap_node.js:382:7) 

Я использую v7.0.0-test2016100609987d242b, но я подтвердил, что это тот же результат с v6.7.0. Этот архив правильно извлекается с gunzip -c и unzip.

$ unzip -v ./allCountries.zip 
Archive: ./allCountries.zip 
Length Method Size Cmpr Date Time CRC-32 Name 
-------- ------ ------- ---- ---------- ----- -------- ---- 
96309121 Defl:N 12668483 87% 2016-10-10 03:05 0666ed3f allCountries.txt 
--------   ------- ---       ------- 
96309121   12668483 87%       1 file 

ответ

1

Это zip-файл, а не поток gzip или zlib. (См. this answer.) Zlib не обрабатывает zip-файлы. Вам понадобится find или напишите код, анализирующий формат zip-файла.

 Смежные вопросы

  • Нет связанных вопросов^_^