2016-10-07 4 views
2

Was Der Vorteil des Verfangens Fehler ist und innerhalb einer Middleware-Funktion wie in Beispiel A.Wann soll ich die Fehlerbehandlung Middleware-Funktion

Beispiel A

function(req, res, next) 
{ 
    if (err) { 
     err.message = 'Not Found'; 
     res.status(404).json(err); 
     return; 
    } 
} 

Versus Passieren des Fehlers reagiert an der Middleware-Fehlerbehandlung wie in Beispiel B

Beispiel B

function(req, res, next) 
{ 
    if (err) { 
     var err = new Error('Not Found'); 
     err.status = 404; 
     next(err); 
    } 
} 

Fehlerbehandlung Middleware:

app.use(function(err, req, res, next) { 
    res.status(err.status || 500); 
    res.json({message: "error"}); 
    }); 

Antwort

0

Stellen Sie die Anfrage über mehrere Funktionen sind Rohrleitungen, sie zu verarbeiten, und der Fehler in einer der ersten Funktionen ist oberflächlich. Sie können die Anfrage noch bearbeiten, aber Sie müssen eine Warnung senden oder den Fehler behandeln. Vielleicht möchten Sie alle Fehler in der Pipeline sammeln, um sie zurück zu melden. Beispiel B erlaubt dies.

Aber stellen Sie sich vor, der Fehler ist kritisch, und Sie wissen, dass Sie nicht fortfahren können. In diesem Fall können Sie nicht als nächstes anrufen, da die nächste Funktion nicht weiß, wie sie mit einer grundlegend gebrochenen Anfrage umgehen soll. Hier ist Beispiel A praktisch.

Verwandte Themen