2016-05-02 5 views
0

Ein npm-Modul generiert einen Fehler dieses Formats.Zugriff auf benutzerdefiniertes Fehlerobjekt, das vom npm-Modul ausgelöst wird [Fehler: [Objekt]]

throw new Error(error.data.errors) 

wo error.data.errors ist

{ email: [ 'is invalid' ] } 

Wenn ich versuche, darauf zuzugreifen im catch-Block von meinem Code, es kommt auf, als

[Error: [object Object]] 

Wie kann ich die ursprünglichen Fehler zugreifen/Fehlermeldung von meinem Catch-Block?

+1

Konnten Sie den Code, wo Sie den Fehler fangen, bitte? – slackmart

+0

nicht den Fehler werfen. Handle es. Gebe es mit Callback zurück. Dann können Sie als POJO darauf zugreifen. –

Antwort

1

Ich habe gerade ein wenig experimentiert und es scheint nicht viel zu geben, was Sie in diesem Fall tun können. Es sieht aus wie JavaScript Aufrufe .toString() auf die Fehlermeldung, wenn es ausgelöst wird. Standardmäßig ist dies "[object Object]" für alle Objekte.

Soweit ich das beurteilen kann, würde das Update sein, eine Pull-Anforderung zu öffnen, das Werfen des Fehlers wie folgt geändert:

throw new Error(JSON.stringify(error.data.errors)); 

Mit dieser Änderung, können Sie die JSON auf Fang das nicht analysieren Error.

try { 
    // Whatever functionality causes the error. 
} catch (e) { 
    var errors = JSON.parse(e.message); 
} 
+0

danke. Ich habe eine PR eingereicht und es wurde angenommen. Kann jetzt auf den Fehler zugreifen. –

Verwandte Themen