使用node.js zlib将zip文件流式传输到变量中

问题描述 投票:1回答:0

我正在尝试将本地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本机模块。 我的目的是读取流并将其一次加载到内存中,因为在某个时候必须将此文件延迟加载到代码中。

javascript node.js unzip
© www.soinside.com 2019 - 2024. All rights reserved.