NEWS
Script schießt unter umständen die ganze JS Instance ab.
-
Hallo zusammen,
ich hab ein kleines Script, was von einer URL ein Bild lädt. Dieses wird Lokal gespeichert und im VIS dargestellt.
Läuft eigentlich Problemlos.
Jetzt ist die URL aber gerade nicht erreichbar und das zerlegt die gesamte JS Instanz. Somit läuft kein Script mehr.
Das finde ich schlecht, weil dann ja gleich "das ganze Haus" kaputt ist.. In den Logs, ist leider nicht zu erkennen welches Script jetzt direkt verantwortlich ist.function getAgency() { var cookieJar = request.jar(); request.post({url, jar: cookieJar, form: {"_username":"...", "_password":""}}, function(error, response, body){ request.get({ url:"https://.../infodisplay/show/135", jar: cookieJar //header: response.headers },function(error, response, body){ //console.log(body); const $ = cheerio.load(body); var filePath = $('.infodisplay-widget-content img').attr('src'); var path = "https://......de" + filePath; //console.log(filePath); // Bild speichern request(path, {jar: cookieJar, encoding: 'binary'}, function(error, response, body) { //console.log(body); fs.writeFile('/tmp/agency.png', body, 'binary', function (err) { var data = fs.readFileSync('/tmp/agency.png'); writeFile('vis.0', '/agency/agency.png', data, function (error) { console.log('Agencyfile written'); var date = new Date(); setState(lastAgencyUpdate, formatDate(date, "TT.MM.JJJJ SS:mm")) }); }); }); }); }); }
Fangt Ihr solche Situationen im Code ab? Wäre vermutlich die saubere Art und weise.
Weiß nicht ob das geht, aber es wäre schön wenn ein Script nicht gleich den ganzen Adapter stoppen würde in so einem Fall. -
@Creator sagte in Script schießt unter umständen die ganze JS Instance ab.:
Fangt Ihr solche Situationen im Code ab? Wäre vermutlich die saubere Art und weise.
Wenn es eine Variable namens
error
(odererr
) gibt, kann ich nur empfehlen, die auch zu nutzen! Für keines derrequest()
-Callbacks behandelst du den Fehler. Auch nicht für daswriteFile()
-Callback. -
@UncleSam
Ja da hast du ganz klar recht. Ist bisschen der Faulheit & Zeit geschuldet.
Hab den Fehler abgefangen..Dennoch ist es nicht so schön, dass der ganze Adapter gleich mitgezogen wird bei so einem Fehler.