nodejs – 下载的图像已损坏

我正在尝试在nodejs中使用http.get来下载和映像。 该图像似乎下载,但无法打开。 操作系统抱怨文件的格式显示不正确。 有人能告诉我我在这里做错了吗?

下面是一个例子,我只是试图抓住谷歌的标志:

var options = { host:'www.google.com', port:80, path:'/images/srpr/logo3w.png' }; var downloadImage = function (options, fileName) { http.get(options, function (res) { var imageData; res.setEncoding('binary'); res.on('data', function (chunk) { imageData += chunk; }); res.on('end', function () { fs.writeFile(fileName, imageData, 'binary', function(err){ if(err) throw err; console.log('File: ' + fileName + " written!"); }) }); }); }; downloadImage(options,'test.png'); 

代码看起来不错,除了imageData的初始化。

  var imageData = ''; 

应该解决这个问题。 https://stackoverflow.com/a/5294619/1135590有一个更详细的讨论。