PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Zwrot w pg-obietnica

Ten kod ma jednocześnie dwa problemy:

  • nieprawidłowe użycie obietnicy, gdy wewnątrz .catch robisz return 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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Użytkownicy nie będący superużytkownikami nie mogą się połączyć, jeśli serwer nie żąda hasła podczas korzystania z dblink

  2. Jak przesłać dane z AWS Postgres RDS do S3 (wtedy Redshift)?

  3. JPA generowanie duplikatów kluczy

  4. Limit czasu połączenia PostgreSQL

  5. Czy mogę pisać funkcje PostgreSQL w Ruby on Rails?