我正在尝试使用节点js从远程网址下载mp3文件。为此,我使用以下代码。但它不起作用(文件下载只有0字节,下载后才播放)。
var http = require('http');
var fs = require('fs');
var url = "http://play.publicradio.org/rivet/d/podcast/marketplace/segments/2015/09/28/mp_20150928_seg_01_64.mp3";
var dest = "2.mp3";
var file = fs.createWriteStream(dest);
var request = http.get(url, function(response) {
console.log("res "+response);
response.pipe(file);
file.on('finish', function() {
console.log("File download Completed");
});
}).on('error', function(err) { // Handle errors
});
答案 0 :(得分:9)
这里的问题是http
没有遵循重定向。
您可以使用默认执行此操作的request npm模块来避免自己处理标题。
var fs = require('fs'),
request = require('request');
request
.get('http://foo.com/bar.mp3')
.on('error', function(err) {
// handle error
})
.pipe(fs.createWriteStream('2.mp3'));