Wie man ein Array von Fehlern mit graphQL zurückgibt

8

Wie kann ich mehrere Fehlermeldungen wie diese zurückgeben?

%Vor%

Auf meinem Server, wenn ich throw('an error') mache, wird es zurückgegeben.

%Vor%

Ich möchte ein Array aller Fehler in der Abfrage zurückgeben. Wie kann ich dem Array errors mehrere Fehler hinzufügen?

    
Lev 23.05.2017, 09:30
quelle

2 Antworten

0

Sie müssten die Fehler ohne die throw -Anweisung abfangen, weil Sie Ihren Prozess nicht unterbrechen möchten. Stattdessen können Sie ein Array namens Fehler und .push() der Fehler erstellen. Wenn Sie es für möglich halten, können Sie am Ende des Prozesses prüfen, ob im Fehlerfeld Fehler enthalten sind. Wenn dies der Fall ist, können Sie sie anzeigen oder bearbeiten, wie Sie möchten

%Vor%     
magreenberg 23.05.2017 09:48
quelle
0

Sieht so aus, als ob es nicht darum geht, viele Ausnahmen anzuzeigen, sondern um die gesamte Stack-Ablaufverfolgung des Fehlers anzuzeigen. Wenn ein Fehler ausgelöst wird, wird die Ausführung keinen anderen Fehler empfangen oder auslösen. In einigen Sprachen können Sie die Eltern-Ausnahme natürlich auf die aktuelle Ausnahme setzen, aber das ist bei JavaScript nicht der Fall. Bisher kann ich die Dokumente sehen und suchen. Ссылка und Ссылка . Sie müssen Ihre eigene Fehlerklasse erstellen, was nicht so schwer ist.

Wenn das Problem ist, zeigen Sie Trace

Der Stack-Trace in Javascript ist eine Zeichenkette! Es ist gut, wenn Sie es nur in ein Protokoll schreiben möchten, aber schlecht, wenn Sie eine aussagekräftigere Lesestruktur wie ein JSON erstellen möchten.

Wenn Sie den Stack-Trace wirklich anzeigen möchten, müssen Sie wahrscheinlich den Stack-Trace des Error-Objekts in ein Array konvertieren, indem Sie Folgendes verwenden: Ссылка und dann dieses Array in Ihr Fehlerobjekt einfügen.

Danach können Sie das Objekt einfach in Ihrer Datenbank speichern. Sie werden immer noch nur einen Fehler sehen, aber Sie werden alle "Ort", "Linie", "Pfad" davon verfolgen, das klingt für mich, was Sie suchen.

Wenn das Problem darin besteht, die Elternfehlermeldung und die Ablaufverfolgung

anzuzeigen

Wenn Sie den übergeordneten Fehler einer Ablaufverfolgung beibehalten möchten, müssen Sie wahrscheinlich eine eigene Fehlerklasse erstellen.

%Vor%

Wenn das Problem ist, zeigen viele Fehlermeldungen und Trace

Wenn Sie viele Fehler in einem großen Paket behalten möchten, können Sie beispielsweise für Validierungsrückmeldungen die Fehlerklasse erweitern, um ein Fehlerpaket zu erstellen. Ich habe ein einfaches Beispiel für jede dieser Klassen erstellt.

%Vor%
    
Thiago Mata 03.01.2018 21:27
quelle

Tags und Links