Esse código tem dois problemas ao mesmo tempo:
- uso de promessa inválido, quando dentro de
.catch
vocêreturn result
, não é assim que as rejeições de promessa são tratadas, você deve fornecer o tratamento do erro ou relançar/rejeitar o erro. - uso inválido de pg-promise
biblioteca. Você usa o método one
que deve ser rejeitado quando algo diferente de 1 registro for retornado, conforme a documentação do método
, e ao mesmo tempo você está dizendo
I need to catch if it returns more than one row...
, que é uma contradição lógica.
O resultado é o seguinte:sua consulta é executada com sucesso e retorna mais de um registro, o que torna o método um rejeitar, e então você pega o motivo da rejeição e o transforma em resolvido fazendo
return result
. Ao todo, seu código está quebrado em todo o lugar. Primeiro, com pg-promise você deve usar o método correto, de acordo com o número de registros que você espera de volta, consulte Noções básicas .
E então manuseie
.then/.catch
de acordo com sua lógica de negócios. Não posso ser mais específico aqui, porque você não forneceu mais detalhes sobre isso.