2017-05-05 401 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