Nodejs: Cómo capturar una excepción de middleware?
Pregunta
Estoy usando Node.js y el "menos" middleware compilador:
app.configure(function() {
// ...
app.use(express.compiler({ src: __dirname + '/public', enable: ['less'] }))
// ...
})
Ahora tengo un .less
-archivo defectuoso, pero no puedo encontrar ninguna documentación sobre cómo conseguir el mensaje de error.
La página de recibo es la siguiente:
<html>
<head>
<title>[object Object]</title>
<style>
/* css stuff */
</style>
</head>
<body>
<div id="wrapper">
<h1>Connect</h1>
<h2><em>500</em> [object Object]</h2>
<ul id="stacktrace"></ul>
</div>
</body>
</html>
Así que no es útil. Alguien tiene una idea?
Solución
Ah, ok, lo consiguió. El truco es dejar fuera el desarrollo errorHandler
app.configure('development', function() {
// app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});
Parece que tragar las llamadas a app.error, por lo que ahora funciona esto:
app.error(function(err, req, res, next) {
sys.puts("APP.ERROR:" + sys.inspect(err));
next(err);
});
Esto muestra el error correcto en lugar de [object Object]
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow