sql >> Databasteknik >  >> RDS >> PostgreSQL

Återgå i pg-löfte

Den koden har två problem samtidigt:

  • ogiltigt löftesanvändning, inom .catch du return result , det är inte så löftesavvisningar hanteras, du måste antingen tillhandahålla felhanteringen eller kasta om/avvisa felet igen.
  • ogiltig användning av pg-promise bibliotek. Du använder metoden one som ska avvisas när något annat än en post returneras, enligt metodens dokumentation , och samtidigt säger du I need to catch if it returns more than one row... , vilket är en logisk motsägelse.

Resultatet av det är som följer:din fråga körs framgångsrikt och returnerar mer än en post, vilket i sin tur gör metoden ett avvisa, och sedan tar du skälet för avslaget och gör det till ett löst genom att göra return result . Sammantaget är din kod trasig överallt.

Först med pg-promise du ska använda rätt metod, beroende på antalet poster du förväntar dig tillbaka, se Grunderna .

Och hantera sedan .then/.catch enligt din affärslogik. Jag kan inte vara mer specifik här, eftersom du inte angav ytterligare information om detta.




  1. Markör för loop i Oracle

  2. Är det möjligt att göra N-master => 1-slav replikering med MySQL?

  3. uppdatera dynamisk php div med jquery

  4. Hur importerar jag MySql Connector till Unity Project?