Ten kod ma jednocześnie dwa problemy:
- nieprawidłowe użycie obietnicy, gdy wewnątrz
.catch
robiszreturn 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.