0
我有一個JSON文件,其中包含服務器上的文件名列表。我需要遍歷這個列表並在本地保存每個文件。我有這個工作在一定程度上。有時候它的作用就像是一種魅力,其他的則不然,我最終得到的是空文件。Node.js - 使用http.get循環瀏覽JSON本地保存文件
我知道這可能是開始下載之前完成的下一個文件,但我很努力重新寫這個,以便我得到一個回調,當文件完成開始下載下一個。我對客戶端編碼並不熟悉,所以非常感謝這方面的幫助。
var filefolder = 'http://www.example.com/files/';
var newdir = nw.App.dataPath;
$.each(jsonFiles, function(i, fn) {
//read and download to save locally
var filelink = filefolder + '/' + fn;
var newfile = fs.createWriteStream(newdir+'/files/' + '/' + fn);
var request = http.get(filelink, function(response) {
response.pipe(newfile);
console.log(fn);
newfile.on('finish', function() {
newfile.close(cb);
});
});
});
好像你有一個異步種族問題。也許嘗試在「http.get ...」的回調中放置「var newfile = ...」。然後將「response.pipe ...」移入「newfile.on('finish')」回調中「 – josephnvu
用'filelink,newfile,fn&cb'作爲參數封裝'http.get'調用,因爲參數可能工作 – Thaadikkaaran
謝謝@josephnvu,嘗試了你的建議,但所有的文件都是空的,而不僅僅是一些。 – LeeTee