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

Kis*_*nti 1 javascript fs node.js

我正在尝试使用节点js从远程URL下载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

});
Run Code Online (Sandbox Code Playgroud)

use*_*946 11

这里的问题是http不遵循重定向.您可以使用默认情况下执行此操作的请求 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'));
Run Code Online (Sandbox Code Playgroud)