处理node.js中的ZIP-Buffer

时间:2012-07-30 13:42:10

标签: node.js zip

我正在使用node.js构建webapp的服务器部分。这涉及从thetvdb.com(API documentation of thetvdb)获取数据。 数据以zip文件形式提供。 HTTP下载没有问题,但解析文件是。我实际上从不保存文件,只是将其保存在内存中,如How to download and unzip a zip file in memory in NodeJs?

中所述

我有一个包含有效数据的缓冲区(与使用browser / curl下载文件时相同的数据...)。但是,adm-zip(我也累了其他的zip库,有些建议无效的zip长度)无法打开它。它没有显示错误,但最后的zipEntries长度为0。 当我将缓冲区写入文件系统并使用gui或cli工具打开它时,它可以工作。

我无法提供该文件的direkt链接,因为它会涉及我的API密钥,但我重新上传here

1 个答案:

答案 0 :(得分:1)

我想我可能会给你答案:

不要依赖npm install。我刚刚使用您提供的zip文件运行了您链接到的example,并获得了"0"的输出。

我在另一个StackOverflow页面上看到了评论,说npm上adm-zip的版本不是最新的。我从github抓取了adm-zip的新副本,覆盖了我的node_modules文件夹中的那个,然后重新获取示例代码,现在得到以下内容:

...
<Actor>
  <id>237811</id>
  <Image>actors/237811.jpg</Image>
  <Name>Peter Pratt</Name>
  <Role>The Master</Role>
  <SortOrder>3</SortOrder>
</Actor>
<Actor>
  <id>23780s/237811.jpg</Image>

试一试!