Този код има два проблема едновременно:
- невалидно използване на обещание, когато е вътре в
.catch
правитеreturn result
, това не е начинът, по който се обработват отхвърлените обещания, трябва или да предоставите обработката на грешката, или да хвърлите/отхвърлите повторно грешката. - невалидно използване на pg-promise
библиотека. Използвате метод one
който трябва да отхвърли, когато се върне нещо различно от 1 запис, съгласно документацията на метода
, и в същото време казвате
I need to catch if it returns more than one row...
, което е логическо противоречие.
Резултатът от него е следният:вашата заявка се изпълнява успешно и връща повече от един запис, което от своя страна прави метод един
отхвърляне и след това вземате причината за отхвърляне и я превръщате в разрешена, като правите return result
. Като цяло вашият код е повреден навсякъде.
Първо, с pg-promise трябва да използвате правилния метод, според броя на записите, които очаквате обратно, вижте Основните положения .
И след това обработете .then/.catch
според вашата бизнес логика. Не мога да бъда по-конкретен тук, защото не предоставихте повече подробности за това.