1

我正在使用 node.js 构建 webapp 的服务器部分。这涉及从 thetvdb.com 获取数据(thetvdb的 API 文档)。数据以 zip 文件的形式提供。HTTP 下载是没有问题的,但是,解析文件是。实际上,我从不保存文件,而只是将其保存在内存中,如如何在 NodeJs 中下载和解压缩内存中的 zip 文件?

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

我无法提供该文件的直接链接,因为它会涉及我的 API 密钥,但是我在这里重新上传了它。

4

1 回答 1

1

我想我可能会给你一个答案:

不要依赖npm install。我刚刚使用您提供的 zip 文件运行了您链接到的示例,我得到了"0".

我在另一个 StackOverflow 页面上看到了一条评论,说adm-zipon npm 的版本不是最新的。我从 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>

试一试!

于 2012-07-30T15:36:34.833 回答