我正在尝试将本地zip
文件解压缩到node.js中的变量中,例如:
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
错误。 尝试使用管道时出现类似错误:
fs.createReadStream(zipPath)
.pipe( zlib.createUnzip() )
.on('data', function (data){
d+=data.toString();
})
.on('end', function (){
console.log("read",d.length);
})
我知道npm
上有非本机模块,但是我想保持简单,仅使用zlib
本机模块。 我的目的是读取流并将其一次加载到内存中,因为在某个时候必须将此文件延迟加载到代码中。