2016-10-10 45 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 -cunzip으로 올바르게 추출됩니다.

$ 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

이것은 gzip 또는 zlib 스트림이 아닌 zip 파일입니다. (this answer을 참조하십시오.) zlib은 zip 파일을 처리하지 않습니다. find 또는 zip 파일 형식을 구문 분석하는 코드를 작성해야합니다.