2012-04-19 15 views
6

Zajmuję wyraźne aplikację.Zastosowanie process.on ("uncaughtException aby wyświetlić stronę błędu 500

Obecnie mam następujących w moim server.js

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

który zatrzymuje serwer upaść za każdym razem wystąpi błąd, jednak właśnie tam siedzi ...

to możliwe, aby zamiast console.log, aby wysłać stronę 500 błędu ze szczegółami o błędach?

Odpowiedz

8

nie sądzę możesz z poziomu uncaughtException zrobić odpowiedź, ponieważ może się to zdarzyć nawet wtedy, gdy nie ma żadnego żądania. Sam

Express oferuje sposób na handle errors ciągu tras, tak jak poniżej:

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

nie działa. 'app.error' nie jest zdefiniowany. Być może API ExpressJS uległo zmianie od czasu opublikowania tej odpowiedzi (> 2 lata temu). Obsługa wyjątków ExpressJS: http://expressjs.com/guide.html#error-handling –

+0

app.error nie jest funkcją. –

4

Per ExpressJS Error Handling, dodać app.use(function(err, req, res, next){ // your logic }); poniżej swoich innych app.use wypowiedzi.

Przykład:

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