2012-04-19 9 views
6

Estoy desarrollando una aplicación expresa.Uso process.on ('uncaughtException para mostrar una página de error 500

Actualmente tengo el siguiente en mis server.js

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

que detiene el servidor de estrellarse cada vez que hay un error, sin embargo, que sólo se sienta allí ...

es posible en lugar de console.log, para enviar una página de error 500 con los detalles del error?

Respuesta

8

no creo puede desde dentro del uncaughtException hacer una respuesta, ya que eso podría suceder incluso cuando no se produce ninguna solicitud.

sí Express proporciona una manera de handle errors dentro de rutas, así:

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

no funciona. 'app.error' no definido. Quizás la API de ExpressJS cambió desde que se publicó esta respuesta (> hace 2 años). El manejo de excepciones ExpressJS está cubierto en: http://expressjs.com/guide.html#error-handling –

+0

app.error no es una función. –

4

por ExpressJS Error Handling, añadir app.use(function(err, req, res, next){ // your logic }); debajo de los otros app.use declaraciones.

Ejemplo:

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