2010-10-31 6 views
5

J'utilise Node.js et la « moins » middleware du compilateur:Nodejs: Comment intercepter une exception du middleware?

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

Maintenant, j'ai un .less -file défectueux, mais je ne trouve pas de documents sur la façon d'obtenir le message d'erreur . La page que je reçois est la suivante:

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

Donc ce n'est pas utile. Quelqu'un a une idée?

Répondre

3

Ah, d'accord, j'ai compris. L'astuce est de laisser loin le développement errorHandler

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

Il semble avaler les appels à app.error, maintenant cela fonctionne:

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

Cela montre l'erreur correcte au lieu de [object Object]

+0

Vous devriez marquer ceci comme la bonne réponse, c'est en effet correct. – Jessedc

Questions connexes