Ich benutze die XML-Stream-Bibliothek für Nodejs, um eine große XML-Datei zu analysieren. Das funktioniert sehr gut. Aber ich stelle fest, dass, wenn es ein Problem wie ein ReferenceError im Rückruf eines xml-stream Ereignisses gibt, Nodejs nur beendet, ohne mich zu benachrichtigen oder einen Fehler zu werfen.Nodejs Fehlerbehandlung im Callback (xml-stream)
Ein kurzes Beispiel dafür ist der folgende Code:
var fs = require('fs');
var XmlStream = require('xml-stream');
var stream = fs.createReadStream('E:/jdown2/dblp/dblp.xml');
var xml = new XmlStream(stream);
xml.on('endElement: article', function (data) {
console.log("article"); // works well
var demo = functionThatNotExists(data);
console.log("nodejs exit before this console log");
});
Also meine Frage ist, wie kann ich es erreichen, dass NodeJS mir sagt, dass es einen Fehler gab und wo der Fehler aufgetreten?
Oder liefert xml-stream das nicht?
In einer normalen Callback-Funktion wie:
errorInCallback("test", function (err,data) {
console.log(err, data)
});
function errorInCallback(data, cb) {
var demo = functionThatNotExists(data);
var err = null;
return cb(err, demo)
}
alle Arbeiten wie erwartet und NodeJS wirft ein Reference
jemand Hat kann mir den Grund erklären und vielleicht, wie das zu beheben?
Vielen Dank im Voraus!
Hallo, vielen Dank für Ihre Hilfe. Aber leider funktioniert das nicht. Ich habe den Ereignis-Listener für den Fehler hinzugefügt. Aber es ist nicht Feuer oder notify. Es beendet nur Knoten – Hansinger
Hmmm .. vielleicht können Sie versuchen, für nicht abgefangene Ausnahme im Knotenprozess zu hören? Vielleicht ist das Problem nicht in XML-Stream. 'process.on ('uncaughtException', Funktion (Ausnahme) {console.log (Ausnahme);});' –