http.get – 下载后文件损坏

OSX上的NodeJS 0.12.2。

我目前正在尝试使用http在NodeJS中从本地主机http服务器(也用Dropboxtesting过)下载.asar文件(Electrons / Atom Shell存档)。 然而,无论我做了什么样的组合,归档文件都会被破坏,而其他文件中的文件不应该是这样,就好像这些块混在一起了(如果这样做有道理的话)

我也尝试从localhost和dropbox下载一个简单的.zip文件,然后运行到同一个问题。

这是我放在一起的最后一次尝试,只是简单地卡住了。 我已经尝试了和没有setEncoding选项。 我究竟做错了什么?

var downloadFile = function(url, dest, cb) { var file = fs.createWriteStream(dest); // https when using dropbox direct links http.get(url, function(res) { res.setEncoding('binary'); res.pipe(file); file.on('finish', function() { file.close(cb); }); }); }; 

问题来自你明确地设置编码为二进制,例如,这工作得很好:

 fs = require("fs"); http = require("http"); var downloadFile = function (url, dest, cb) { var file = fs.createWriteStream(dest); http.get(url, function (res) { //res.setEncoding('binary'); res.pipe(file); file.on('finish', function () { file.close(cb); }); }); }; downloadFile("http://www.sevenstring.org/forum/images/misc/ss_header_l.png", "test.png", function (err) { console.log(err); });