Mã đó có hai vấn đề cùng một lúc:
- sử dụng lời hứa không hợp lệ, khi bên trong
.catch
bạnreturn result
, đó không phải là cách xử lý từ chối lời hứa, bạn phải cung cấp cách xử lý lỗi hoặc ném lại / từ chối lại lỗi. - sử dụng pg-promise
không hợp lệ thư viện. Bạn sử dụng phương pháp một
điều đó phải từ chối khi bất kỳ thứ gì khác ngoài 1 bản ghi được trả lại, theo tài liệu của phương pháp
, đồng thời bạn đang nói
I need to catch if it returns more than one row...
, đó là một mâu thuẫn logic.
Kết quả của nó như sau:truy vấn của bạn thực thi thành công và trả về nhiều bản ghi, do đó tạo ra phương thức một
từ chối, và sau đó bạn lấy lý do từ chối và biến nó thành một lý do đã được giải quyết bằng cách thực hiện return result
. Nói chung, mã của bạn bị hỏng khắp nơi.
Đầu tiên, với pg-promise bạn phải sử dụng đúng phương pháp, theo số lượng bản ghi mà bạn mong đợi trở lại, hãy xem Cơ bản .
Và sau đó xử lý .then/.catch
theo logic kinh doanh của bạn. Tôi không thể nói cụ thể hơn ở đây, vì bạn đã không cung cấp thêm chi tiết về điều này.