Ich habe ein Problem in meiner aktuellen ExpressJS-Anwendung. Ich verwende normale Funktionen, um die verschiedenen Routen in der App zu umbrechen, und wenn ein Fehler auftritt, kann ich einfach return next (err)
verwenden, um die Funktion (return
) zu beenden und den Fehlerhandler (next (err)
) aufzurufen.Fehler vom Versprechen in ExpressJS zurück
Aber was mache ich, wenn es mehrere gefaltete Funktionen gibt, deren Ausführung ich verhindern möchte?
In meinem Code gibt es die Basisroute-Funktion, darin habe ich mehrere andere Funktionen (die Callbacks sind). In diesen Callbacks möchte ich in der Lage sein, die Routenausführung vollständig zu beenden. Zurzeit wird return next (err)
nur vom aktuellen Rückruf beendet, fährt dann aber fort, die Route auszuführen.
Vielen Dank für Anregungen!
Edit: Ich habe einige Code aufgeschlüsselt das Problem zu beschreiben:
// This function is an expressJS route
function doSomeStuff (req, res, next) {
var mongooseObj = new mongooseModel ({});
mongooseObj.save (function (err) {
if (err)
return next (new Error ("whatever"));
// The line above returns from the callback, the expressJS error-handler handles the error, but then the code execution continues below
});
// Function continues here
}
Ihre Frage ist sehr unscharf, ohne Code aber wenn Ihre Frage zu früh Bruch eines Versprechen Kette ist, dann ist die übliche Wahl zwischen Ausnahmen und verschachtelten Versprechen. –
Ich weiß, dass es unscharf ist, aber ich kann Ihnen keinen Code zur Verfügung stellen. Das direkte Werfen des Fehlers wäre eine Option, aber der expressJS-Fehlerhandler wird sich nicht darum kümmern, was er tun sollte. Ich habe keine Versprechen, deshalb gibt es keine Versprechens-Kette, um zu brechen. – NikxDa
Nein, ich meine die Ausnahme zu werfen, um aus der Kette auszubrechen ** und ** sie einzufangen. Aber ohne Code gibt es leider nicht viel zu besprechen. –