NodeJS: Como pegar uma exceção do Middleware?
Pergunta
Estou usando o Node.js e o "menos" middleware do compilador:
app.configure(function() {
// ...
app.use(express.compiler({ src: __dirname + '/public', enable: ['less'] }))
// ...
})
Agora eu tenho um com defeito .less
-File, mas não consigo encontrar nenhum documento sobre como obter a mensagem de erro. A página que recebo é a seguinte:
<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>
Então isso não é útil. Alguém tem uma ideia?
Solução
Ah, ok, entendi. O truque é deixar fora o desenvolvimento de erros de desenvolvimento
app.configure('development', function() {
// app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});
Parece engolir chamadas para app.error, então agora isso funciona:
app.error(function(err, req, res, next) {
sys.puts("APP.ERROR:" + sys.inspect(err));
next(err);
});
Isso mostra o erro correto em vez de [objeto de objeto
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow