Суть следующая. Есть файл с большим количеством ссылок на различные файлы. Эти файлы нужно скачать.
Пробую делать следующим образом:
var http = require('http');
var fs = require('fs');
function readFile(nameFile) {
fs.readFile(nameFile, 'utf8', function(err, contents) {
if (!err) {
readLine(contents.split('\n'));
} else {
console.log('Ошибка', err);
}
});
}
function readLine(array) {
array.forEach(function(uri) {
var img_name = decodeURIComponent(uri.split('/').slice(-1))
var file = fs.createWriteStream(img_name);
var request = http.get(uri, function (response) {
console.log(img_name, ' OK')
response.pipe(file);
});
});
}
readFile('test.txt');
Если в файле ссылок не очень много то данный скрипт справляется, но если там ссылкок более 5тыс, то скрипт падает. Хотелось бы сделать его синхронным, как только файл скачался, только тогда переходить к следующей ссылке. Все эксперименты потерпели неудачу. Подскажите пожалуйста, может есть какой нибудь способ делать запросы синхронно.