2010-10-31 8 views
5

Sto usando node.js e il "meno" compilatore middleware:Nodejs: come rilevare un'eccezione dal middleware?

app.configure(function() { 
    // ... 
    app.use(express.compiler({ src: __dirname + '/public', enable: ['less'] })) 
    // ... 
}) 

Ora ho un guasto .less -file, ma non riesco a trovare nessuna documentazione su come ottenere il messaggio di errore . La pagina che ricevo è questo:

<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> 

modo che non è utile. Qualcuno ha un'idea?

risposta

3

Ah, ok, capito. Il trucco è quello di lasciare via l'errorHandler sviluppo

app.configure('development', function() { 
    // app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); 
}); 

Sembra di deglutire le chiamate a app.error, così ora questo funziona:

app.error(function(err, req, res, next) { 
    sys.puts("APP.ERROR:" + sys.inspect(err)); 
    next(err); 
}); 

Questo mostra la corretta errore invece di [object Object]

+0

Si dovrebbe contrassegnare questo come la risposta corretta, è davvero corretto. – Jessedc