首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在nodejs中解压缩文件夹时出现的无效签名错误

在nodejs中解压缩文件夹时出现的无效签名错误
EN

Stack Overflow用户
提问于 2016-12-06 06:46:08
回答 1查看 2.6K关注 0票数 1

我使用解压缩节点模块解压缩我的binary-data (来自request模块)。在某些情况下,当request模块的response不包含zip文件夹binary data (如果响应没有zip文件夹数据,一些其他二进制数据)时,它会失败。

我是如何处理这个异常的。

代码语言:javascript
复制
const request = require("request");
const unzip = require('unzip');
const stream = require('stream');

var options = {
        method: 'GET',
        url: /*URL*/,
        encoding: null
    };

    request(options, function (error, response, body) {
        zipExtract(error, body);
    });

zipExtract:

代码语言:javascript
复制
function zipExtract(error, zipData) {
    if (error) {
        console.error(error);
    }
    else {
        try {
            //create stream object
            var artifactStream = new stream.PassThrough();

            //parse buffer into stream
            artifactStream.end(zipData);

            //pipe response to unzip
            artifactStream.pipe(unzip.Extract({path: 'app/output'}));
        }

        catch (exception) {
            console.error(exception);
        }
    }
} 

控制台上的提示错误

代码语言:javascript
复制
events.js:160
      throw er; // Unhandled 'error' event
      ^

Error: invalid signature: 0x6d74683c
    at C:\app-hub\module-application-size\node_modules\unzip\lib\parse.js:63:13
    at runCallback (timers.js:637:20)
    at tryOnImmediate (timers.js:610:5)
    at processImmediate [as _immediateCallback] (timers.js:582:5)
npm ERR! Test failed.  See above for more details.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-12 06:04:52

使用adm-zip模块处理异常。

代码语言:javascript
复制
const admzip = require('adm-zip');

try {
    var zip = new admzip(zipData);
    zip.extractAllTo(/*path*/);

}
catch (exception) {
    console.error(exception);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40989373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档