2010-10-31 14 views
5

Używam node.js i „mniej” kompilatora middleware:Nodejs: Jak złapać wyjątek od oprogramowania pośredniego?

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

teraz mam wadliwy .less -file, ale nie mogę znaleźć żadnych docs, w jaki sposób dostać się komunikat o błędzie . Strona otrzymuję to:

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

Więc to nie jest pomocne. Ktoś ma pomysł?

Odpowiedz

3

Ah, ok, rozumiem. Sztuką jest, aby wyjechać z dala errorHandler rozwoju

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

Wydaje połknąć połączeń do app.error, więc teraz to działa:

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

To pokazuje prawidłową błąd zamiast [object Object]

+0

Należy oznaczyć tę odpowiedź jako poprawną, jest ona rzeczywiście poprawna. – Jessedc