2017-05-05 54 views
0

如何從URL下載音頻文件並將其存儲在本地目錄中? 我使用Node.js的,我嘗試下面的代碼:如何在Node.js中從URL下載音頻文件?

var http = require('http'); 
var fs = require('fs'); 
var dest = 'C./test' 
var url= 'http://static1.grsites.com/archive/sounds/comic/comic002.wav' 
function download(url, dest, callback) { 
    var file = fs.createWriteStream(dest); 
    var request = http.get(url, function (response) { 
    response.pipe(file); 
    file.on('finish', function() { 
     file.close(callback); // close() is async, call callback after close completes. 
    }); 
    file.on('error', function (err) { 
     fs.unlink(dest); // Delete the file async. (But we don't check the result) 
     if (callback) 
     callback(err.message); 
    }); 
    }); 
} 

沒有出錯,但該文件一直沒有找到。

+0

它看起來並不像你實際調用'download'函數,所以沒有任何事情發生。 –

+0

爲什麼你在var之前有'''字符,然後是最後一行'}'? – bhantol

+0

只有這些報價修復後,所有答案才能正常工作。 – bhantol

回答

0

複製的How to download a file with Node.js (without using third-party libraries)?,但這裏是專門針對你的問題代碼:

var http = require('http'); 
var fs = require('fs'); 

var file = fs.createWriteStream("file.wav"); 
var request = http.get("http://static1.grsites.com/archive/sounds/comic/comic002.wav", function(response) { 
    response.pipe(file); 
}); 
+0

它的工作原理......謝謝:) – RajaSekar

+0

@RajaSekar不客氣!請將答案標記爲正確,以便其他人知道問題已得到解答。 :) –

0

您的代碼實際上是很好,你只是不調用下載功能。嘗試添加這到底:

download(url, dest, function(err){ 
    if(err){ 
    console.error(err); 
    }else{ 
    console.log("Download complete"); 
    } 
}); 

而且,dest值更改爲別的東西,像剛纔"test.wav"或東西。 'C./test'是一個不好的路徑。

我在我的機器上試了一下,你的代碼工作正常,只是添加了電話並改變了dest

+0

它的工作..謝謝:) – RajaSekar