Quel codice ha due problemi contemporaneamente:
- uso della promessa non valido, se all'interno di
.catch
return result
, non è così che vengono gestiti i rifiuti delle promesse, devi fornire la gestione degli errori o lanciare nuovamente/rifiutare l'errore. - uso non valido di pg-promise
biblioteca. Utilizzi il metodo one
che dovrebbe rifiutare quando viene restituito qualcosa di diverso da 1 record, come da la documentazione del metodo
, e allo stesso tempo stai dicendo
I need to catch if it returns more than one row...
, che è una contraddizione logica.
Il risultato è il seguente:la tua query viene eseguita correttamente e restituisce più di un record, il che a sua volta rende il metodo uno
rifiuta, quindi prendi il motivo del rifiuto e lo trasformi in uno risolto eseguendo return result
. In tutto, il tuo codice è rotto ovunque.
Innanzitutto, con pg-promise dovresti usare il metodo giusto, in base al numero di record che ti aspetti indietro, vedi Nozioni di base .
E poi gestisci .then/.catch
secondo la tua logica aziendale. Non posso essere più specifico qui, perché non hai fornito ulteriori dettagli in merito.