我正在使用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。
答案 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>
试一试!