Отлично работает только с несколькими URL-адресами, но чем больше я пытаюсь сканировать, тем больше времени занимает процесс для каждого URL-адреса. Файл содержит около 145 URL. Если я попытаюсь просканировать все из них, программа просто перестанет отвечать на 135 скриншотов сайтов. Я предполагаю, что это связано с асинхронной природой Node, но я понятия не имею, как это исправить.
Вот что я получил:
const fs = require('fs');
const webshot = require('webshot');
let jsonData = fs.readFileSync('./data.json');
let jsonDataParsed = JSON.parse(jsonData);
let number = 1;
let options = {
quality: 25,
}
jsonDataParsed.forEach((element) => {
let url = element.link;
let title = element.veranstalter;
let randomNumber = (Math.round(Math.random() * 1000000)).toString();
let picName = './webshotpics/'+ title + '-'+ randomNumber+'.jpg';
webshot(url, picName, options, function(err) {
console.log('Tried Webshot ' + number);
console.log(picName);
console.log(number);
console.log(url);
number++;
if (err) {
console.log('Error at number ' + number );
console.log('Error name: ' + picName );
console.log('Error link: ' + url );
}
});
});