2017-10-23 3 views
0

In Express.js App final app.use, die für Fehler unter Verwendungerr ist leer, aber err.message existiert auf Express.js

app.use(function(err, req, res, next) { 

    res.status(err.status || 500); 
    console.log('as',typeof err); 
    // res.render('error1', { 
    // message: err.message, 
    // error: {} 
    // }); 
    res.json(err.message) 
}); 

Handhabung Wenn ich es drucken log irren als {}, aber wenn ich log err.message Es zeigt String wie 'obj ist nicht definiert'. Warum das passiert und wie ich alle Schlüssel von err Objekt wie Nachricht sehen kann.

+0

Normalerweise sollten Sie die wichtigen Eigenschaften des Fehlerobjekts in der API-Dokumentation von ExpressJS finden oder einen JS-Debugger verwenden, um das Objekt zur Laufzeit zu untersuchen. Natürlich können Sie JS selbst verwenden, um alle Eigenschaften zu drucken, aber normalerweise ist das nicht der beste Weg. – xander

+0

Sie können versuchen, nur den Fehler protokollieren mit console.log (err) oder res.json (err.message) – olyjosh

+0

Object.toString ist nicht das gleiche wie JSON.stringify (Object). Object.toString wird oft als {} –

Antwort

0
app.use(function(err, req, res, next) { 
    if(err){ 
     res.json(err) 
    } 
    else{ 
     //err is {} 
    } 
}); 

Wenn es nicht fehlerhaft ist, dann wird die errnull sein.

+0

Bitte formatieren Sie Ihren Code – olyjosh

Verwandte Themen