Tento kód má dva problémy současně:
- neplatné použití slibu, když je uvnitř
.catch
return result
, takto se odmítnutí příslibu neřeší, musíte buď zajistit zpracování chyb, nebo chybu znovu hodit/znovu odmítnout. - neplatné použití pg-promise
knihovna. Používáte metodu jedna
to má odmítnout, když se vrátí něco jiného než 1 záznam, podle dokumentaci metody
, a zároveň říkáte
I need to catch if it returns more than one row...
, což je logický rozpor.
Výsledek je následující:váš dotaz se provede úspěšně a vrátí více než jeden záznam, což zase způsobí, že metoda jeden
odmítnout a poté vezmete důvod odmítnutí a změníte jej na vyřešený provedením return result
. Celkově je váš kód rozbitý všude.
Nejprve pomocí pg-promise měli byste použít správnou metodu podle počtu záznamů, které očekáváte zpět, viz Základy .
A pak zpracujte .then/.catch
podle vaší obchodní logiky. Nemohu zde být konkrétnější, protože jste k tomu neuvedli další podrobnosti.