2013-06-29 3 views
1

Мне нужно скачать несколько файлов с URL-адресов. У меня есть список из них в файле. Как мне это сделать? Я уже сделал это, но он не работает. Мне нужно до тех пор, пока последняя загрузка не будет выполнена до начала следующего wan. Как я могу это сделать?Node.js скачать несколько файлов

+0

вам нужно извлечь файлы со страницы, заданной URL ли? или вы просто хотите загрузить URL-адреса? – user568109

ответ

5

Вы хотите вызвать функцию загрузки из обратного вызова файла до этого. Я бросил вместе что-то, не считают это довольно ни производство готовых, пожалуйста ;-)

var http = require('http-get'); 

var files = { 'url' : 'local-location', 'repeat-this' : 'as often as you want' }; 

var MultiLoader = function (files, finalcb) { 

     var load_next_file = function (files) { 

       if (Object.keys(files) == 0) { 
         finalcb(null); 
         return; 
       } 

       var nexturl = Object.keys(files)[0]; 
       var nextfnname = files[nexturl]; 

       console.log('will load ' + nexturl); 
       http.get(nexturl, nextfnname, function (err, result) { 
         console.log('loaded ' + nexturl); 
         delete files[nexturl]; 
         load_next_file(files); 
       }); 
     }; 

     load_next_file(JSON.parse(JSON.stringify(files))); 

}; 

MultiLoader(files, function() { console.log('finalcb'); }); 

http-get не стандартный модуль узла, вы можете установить его с помощью npm install http-get.

+1

Самая большая проблема заключается в том, как читать файл, где находится список файлов для загрузки. Пожалуйста, как я это делаю? – user2316602

0

Вы можете читать файлы с помощью фс (вар фс = требуется («фс»);) в узел JS

fs.readFile('<filepath>', "utf8", function (err, data) { 
     if (err) throw err; 
     console.log(data); 
       });