PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Retornar em pg-promise


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.