Ten kod ma jednocześnie dwa problemy:
- nieprawidłowe użycie obietnicy, gdy wewnątrz
.catchrobiszreturn result, to nie jest sposób obsługi odrzuceń obietnic, musisz albo zapewnić obsługę błędów, albo ponownie zgłosić / ponownie odrzucić błąd. - nieprawidłowe użycie pg-promise
biblioteka. Używasz metody jeden
który ma odrzucić, gdy zostanie zwrócony cokolwiek innego niż 1 rekord, zgodnie z dokumentacja metody
, a jednocześnie mówisz
I need to catch if it returns more than one row..., co jest logiczną sprzecznością.
Wynik jest następujący:Twoje zapytanie zostanie wykonane pomyślnie i zwróci więcej niż jeden rekord, co z kolei powoduje, że metoda jeden
odrzuć, a następnie bierzesz powód odrzucenia i zmieniasz go w rozwiązany, wykonując return result . W sumie twój kod jest zepsuty w każdym miejscu.
Najpierw za pomocą pg-promise powinieneś użyć właściwej metody, zgodnie z liczbą rekordów, których oczekujesz, zobacz Podstawy .
A potem obsłużyć .then/.catch zgodnie z Twoją logiką biznesową. Nie mogę być bardziej szczegółowy, ponieważ nie podałeś dalszych szczegółów na ten temat.