使用node.js zlib将压缩文件stream式传输到variables中

我试图将一个本地zip文件解压缩到node.js中的一个variables,如:

  var d; var fs = require('fs'); var zlib = require('zlib'); var zipPath='../../data/lemma/lemmatization-en.zip'; var zipExists=fs.existsSync(zipPath); console.log(zipPath,zipExists); fs.createReadStream(zipPath) .on('data', function (data){ d+=data.toString(); }) .on('end', function (){ console.log("read",d.length); zlib.inflate(d, {},function(err, buf) { console.error(err) console.log("unzip",buf.toString()); }) }) 

该文件在这里 ,它是一个普通的zip文件。 当我运行这个我得到一个Error: incorrect header check错误。 尝试使用pipe道时出现同样的错误:

  fs.createReadStream(zipPath) .pipe( zlib.createUnzip() ) .on('data', function (data){ d+=data.toString(); }) .on('end', function (){ console.log("read",d.length); }) 

我知道npm上有非本地模块,但我想保持简单,只使用zlib本地模块。 我的目标是读取stream,并加载一次到内存中,因为这个文件必须延迟加载到代码中。