2016-10-01 5 views
0

Wenn ich tun:Node.js erster Fehler

const debug = require('debug')('app'); 
var err = new Error("my error"); 
debug(err); 
err.message = "new error"; 
debug(err); 

Ich sehe nicht, die neue Fehlermeldung. Aber wenn ich das tue:

debug(err.message); 

sehe ich die neue Fehlermeldung. Meine Frage ist, was ist der "Fehler" wirklich? Sein typeof ist object, aber warum sehe ich nicht alle Objekte Teile?

Antwort

0

Wenn die debug Bibliothek ein Fehler auftritt, meldet es sich error.stack, das ist eine vorausberechnete String, der die Fehlermeldung hat gebacken. Aus diesem Grund nach der Erstellung des Fehlers die Fehlermeldung zu ändern erscheint nicht in zeigen, Ihr Code, weil die error.stack Eigenschaft festgelegt wurde.

Sie können dieses Verhalten auf these lines sehen:

if (val instanceof Error) return val.stack || val.message; 

In beiden Fällen sollten Sie keine Fehlermeldungen ändern, nachdem der Fehler erstellt wurde.