我正在使用优秀的Request库在 Node 中下载文件,用于我正在开发的一个小型命令行工具。Request 非常适合拉入单个文件,完全没有问题,但它不适用于 ZIP。
例如,我正在尝试下载位于以下 URL的Twitter Bootstrap存档:
http://twitter.github.com/bootstrap/assets/bootstrap.zip
代码的相关部分是:
var fileUrl = "http://twitter.github.com/bootstrap/assets/bootstrap.zip";
var output = "bootstrap.zip";
request(fileUrl, function(err, resp, body) {
if(err) throw err;
fs.writeFile(output, body, function(err) {
console.log("file written!");
}
}
我也尝试将编码设置为“二进制”,但没有运气。实际的 zip 是 ~74KB,但是当通过上面的代码下载时它是 ~134KB 并且在 Finder 中双击以提取它,我收到错误:
无法将“bootstrap”提取到“nodetest”中(错误 21 - 是目录)
我觉得这是一个编码问题,但不确定从哪里开始。