Mit Versprechungen - Protokollierung von stack-trace in fail handler -
Ich bin ziemlich neu auf nodejs also ich erklär ein bisschen genauer, was ich zu tun versuche.
Ich habe einen webserver. Wenn eine Anforderung fehlschlägt möchte ich zu Protokoll der stack-trace der exception, aber liefern eine Fehler-Seite und nicht zum Absturz der server.
Als ein Beispiel, die Funktion, die Handhabung der Anfragen:
var Q = require('q');
var requestHandler = function () {
//Here I get the data etc. that was requested. As this is not important, just a dummy here
Q.resolve()
//Now I answer the request
.then(function (data) {
//Dummy Code representing the sending of a response
console.log('sending response …');
console.log('oh no! an exception');
//Now an Exception occurs
throw new Error('You did something wrong!');
})
//If there was any error, show the error page instead
.fail(function (err) {
//Dummy Code representing the sending of the error page
console.log('sending error page');
//Additionally I want to write the error into a log file
console.error('You had an error: ', err);
})
//If there was an error in the .fail-handler, I deserve the server to crash
.done();
};
//A request comes in, I want to call my handler
requestHandler();
Der Konsole Ausgabe:
sending response …
oh no! an exception
sending error page
You had an error: [Error: You did something wrong!]
Kann ich nicht sehen, eine Möglichkeit des Zugriffs auf den stack-trace. Aber wenn ich eine Ausnahme in die .fail-handler (oder einfach weglassen, komplett .fail-handler), bekomme ich einen stack-trace auf der Konsole (aber ich würde den server neu starten müssen).
Also ich denke, meine Frage ist:
Wie gelange ich an den StackTrace in ein Versprechen fail handler?
BEARBEITEN: Irgendwelche Tipps, wie man zur Verbesserung der Erklärung sind willkommen, natürlich. Wenn ich es nicht mich klar ausgedrückt, lass es mich wissen.
- Können Sie nicht bauen die Spur in javascript und Ausgabe an den client anstatt auf dem server?
- Wie Baue ich die Spur in javascript? Am Liebsten würde ich schreiben, die Fehler in eine log-Datei, anstatt Sie an die website-Besucher.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Protokollierung der Fehler Objekt nicht drucken Fehler-stack-trace.
Sie müssen sich Fragen, für die es speziell:
.js
Dateien, ohne die Quelldatei. Gibt es eine andere Methode, um den browser zu schreiben, die Quell-Dateien?