我正在使用 Node.js 构建 Web 应用程序的服务器部分。这涉及从 thetvdb.com ( API documentation of thetvdb ) 获取数据。 数据以 zip 文件形式提供。 HTTP 下载没有问题,但是解析文件却有问题。实际上,我从不保存文件,只是将其保留在内存中,如 How to download and unzip a zip file in memory in NodeJs? 中所建议的那样。
我有一个包含有效数据的缓冲区(与我使用浏览器/curl 下载文件时的数据相同...)。然而,adm-zip(我也厌倦了其他zip库,有些建议zip长度无效)无法打开它。它没有显示错误,但最后的 zipEntries 长度为 0。 当我将缓冲区写入文件系统并使用 gui 或 cli 工具打开它时,它就可以工作了。
我无法提供该文件的直接链接,因为它会涉及我的 API key ,但我重新上传了它 here .
最佳答案
我想我可以给你一个答案:
不要依赖npm install
。我刚刚运行了 example您通过提供的 zip 文件链接到该文件,我得到的输出为 “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>
试一试!
关于node.js - 在node.js中处理ZIP-Buffer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11722798/