2012-04-19 3 views
6

ich eine Express-App bin zu entwickeln.Verwenden process.on ('uncaughtException zeigen, dass eine 500-Fehlerseite

Im Moment habe ich die folgenden in meinem server.js

process.on('uncaughtException', function (err) { 
    console.log("UNCAUGHT EXCEPTION "); 
    console.log("[Inside 'uncaughtException' event] " + err.stack || err.message); 
}); 

, die den Server nicht mehr abstürzt jedes Mal, wenn es ein Fehler, aber es sitzt da nur ...

ist es möglich, stattdessen von console.log eine 500-Fehlerseite mit den Fehlerdetails zu schicken?

Antwort

8

ich glaube nicht, Sie können innerhalb der uncaughtException eine Antwort tun, da dies passieren könnte, auch wenn keine Anfrage auftritt.

Express selbst bietet eine Möglichkeit, handle errors innerhalb Routen, etwa so:

app.error(function(err, req, res, next){ 
    //check error information and respond accordingly 
}); 
+2

funktioniert nicht. 'app.error' nicht definiert. Vielleicht hat sich die ExpressJS-API geändert, seit diese Antwort gepostet wurde (> 2 Jahre). ExpressJS-Ausnahmebehandlung unter: http://expressjs.com/guide.html#error-handling –

+0

app.error ist keine Funktion. –

4

Per ExpressJS Error Handling, app.use(function(err, req, res, next){ // your logic }); unter Ihren anderen app.use Aussagen hinzuzufügen.

Beispiel:

app.use(function(err, req, res, next){ 
    console.log(err.stack); 
    // additional logic, like emailing OPS staff w/ stack trace 
}); 
Verwandte Themen