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.
InformationsquelleAutor dave | 2013-03-28
Schreibe einen Kommentar