2010-10-31 13 views
5

Ich verwende node.js und die „weniger“ Compiler-Middleware:Nodejs: Wie kann man eine Ausnahme von der Middleware abfangen?

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

Jetzt habe ich ein fehlerhaftes .less -Dateien, aber ich kann keine Dokumente finden, wie die Fehlermeldung erhalten . Die Seite, die ich erhalten, ist dies:

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

das ist also nicht hilfreich. Hat jemand eine Idee?

Antwort

3

Ah, ok, hab es. Der Trick besteht darin, die Entwicklung errorhandler

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

Es scheint, zu verlassen weg Anrufe zu schlucken, app.error so jetzt das funktioniert:

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

Dies zeigt die richtigen Fehler statt [object Object]

+0

Sie sollten dies als die richtige Antwort markieren, es ist in der Tat richtig. – Jessedc