从远程下载Mp3文件。节点js

时间:2015-09-29 10:24:39

标签: javascript node.js fs

我正在尝试使用节点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

});

1 个答案:

答案 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'));