Ich habe erstellt Fehler Instanzen wie folgt aus:HapiJS Fehlerbehandlung
class InsufficientScope extends Error {
constructor(resource = false) {
const errorMessage = resource
? 'User does not have enough privileges to access this resource.'
: `User does not have enough privileges to access the ${resource}`;
super(errorMessage);
this.type = 'authorization_error';
this.statusCode = '403';
}
}
Wenn ich diese Fehler in meinem Handler wie Rückkehr werfen reply(new InsufficientScope());
, ist es immer zu einem Boom-Objekt umgewandelt irgendwie. Wird jeder Fehler in Hapi geworfen und in ein Boom-Objekt mit seinen Eigenschaften umgewandelt?
Da ich in der Lage sein möchte, Verhalten für einige spezifische Fehler angeben (d. H. Protokollierung Ja/Nein usw.) über die OnPreResponse-Erweiterungspunkt. Aber ich kann nicht wirklich unterscheiden, ob es mein eigener Fehler ist oder ein Fehler von Hapi, denn sie sehen alle gleich aus.
Ich kann auch nicht Dinge tun, wie:
if (req.response instanceof InsufficientScope) {
// do something
}
Ich kann auch nicht Boom.create
verwenden, weil das wird nicht eine Instanz sein, sondern nur eine einfache Aufgabe.