Ich habe die folgende Funktion zum Erstellen eines Benutzers in meiner App, ich versuche zu erkennen, wenn Three bereits ein Admin-Benutzer erstellt und verhindern, dass ein anderer erstellen.Unbehandelt 'Fehler' Ereignis beim Trowing-Fehler
export async function createUser (ctx) {
if (ctx.request.body.type == undefined ) {
ctx.throw(400, 'Bad Request')
}
if (ctx.request.body.type === 'admin') {
User.findOne({type:'admin'}, (err, usr) => {
if (err)
ctx.throw(422, err.message)
if (usr){
ctx.throw(400, 'Duplicate Admin')
}
})
}
....
Die ersten ctx.throw(400, 'Bad Request')
funktioniert, aber wenn ein anderer Benutzer admin ist die ctx.throw(400, 'Duplicate Admin')
verursacht den folgenden Fehler, stürzt die App gefunden:
events.js:160
throw er; // Unhandled 'error' event
^
BadRequestError: Duplicate Admin
Ich werfe den Fehler in einer unangemessenen Weise? Was bewirkt, dass der erste Wurf ohne Absturz funktioniert, aber nicht der zweite?
Vielen Dank im Voraus für jede Hilfe