NEWS
Optimaler Umgang mit Request Fehlern
-
Hallo zusammen,
ich nutze in verschieden Scripten den request Befehl. Jetzt habe ich ab zu mal festgestellt, dass wenn die Gegenstelle nicht antwortet der Adapter abschmiert. Jetzt ist meine Frage wie ich den request Befehl am besten einbau.
Ich habe so im Einsatz:
function displayan() { try { request ('http://xxx.xxx.xxx.xxx); } catch (e) { log(e, 'warn'); }habe an anderen Stellen schon folgende Alternative gefunden:
request(URL, function (error, response, body) { if (!error && response.statusCode == 200) { xxxyyyzzz } else { log(error); }Welche Weg ist der bessere? Gibt es weitere Alternativen?
Gruß
Michael
-
Hi,
ich hatte auch das selbe Problem.
Das dumme ist, das es sehr ungünstig ist das wenn ein Fehler (z.B. Unerreichbarkeit) auftritt, bei mir die JS neu startet.
Irgendwie hat das mit dem damaligen Tipp vin "pix" mit try..catch in manchen Situationen nicht funktioniert.
Daraufhin habe ich mit meinen Progammiertechnischen Unwissen nach einer Lösung gesucht, die wie folgt aussieht:
var http = require('http'); http.get("deineurl").on('error', function(e)//oder .post { log(e); });Wenn jetzt ein Fehler auftritt, startet die Instanz nicht neu.
-
var http = require('http'); http.get("deineurl").on('error', function(e)//oder .post { log(e); });Wenn jetzt ein Fehler auftritt, startet die Instanz nicht neu. `
Danke für den Tipp!
Bei mir ist das auch noch eine Baustelle.
Dank Deines Hinweis gegooglet und das hier sieht ganz brauchbar aus:
http://stackoverflow.com/questions/9577 … js-express
Von dort aus einer Antwort entnommen:
var http = require('http'); var options = { host: 'www.ecb.europa.eu', path: '/stats/eurofxref/eurofxref-daily.xml' }; function webseiteAbfragen() { var req = http.get(options, function(res) { log('STATUS: ' + res.statusCode); // Statuscode log('HEADERS: ' + JSON.stringify(res.headers)); // Header (Rückmeldung vom Webserver) // Buffer the body entirely for processing as a whole. var bodyChunks = []; res.on('data', function(chunk) { // Hier können die einzelnen Zeilen verarbeitet werden... bodyChunks.push(chunk); }).on('end', function() { var body = Buffer.concat(bodyChunks); log('BODY: ' + body); // ...und/oder das Gesamtergebnis. }); }); req.on('error', function(e) { // Fehler abfangen log('ERROR: ' + e.message,"warn"); }); } webseiteAbfragen(); -
Hi,
Hier ist Recht gut beschrieben warum das mit try…Catch nicht funktioniert.
<url url="http://m.heise.de/developer/artikel/Einfuehrung-in-die-asynchrone-JavaScript-Programmierung-2752531.html">~~[http://m.heise.de/developer/artikel/Einfuehrung-in-die-asynchrone-JavaScript-Programmierung-2752531.html" target="_blank">](</s><LINK_TEXT text=)~~ [<link_text text="
http://m.heise.de/developer/artikel/Ei … 52531.html">http://m.heise.de/developer/artikel/Einfuehrung-in-die-asynchrone-JavaScript-Programmierung-2752531.html</link_text>](</s><LINK_TEXT text=)</url>
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden