उस कोड में एक ही समय में दो समस्याएं होती हैं:
- अमान्य वादा उपयोग, जब
.catch
. के अंदर हो आपreturn result
do करते हैं , ऐसा नहीं है कि वादा अस्वीकार कैसे किया जाता है, आपको या तो त्रुटि प्रबंधन प्रदान करना होगा, या त्रुटि को फिर से फेंकना / अस्वीकार करना होगा। - pg-promise
का गलत इस्तेमाल पुस्तकालय। आप विधि one
का उपयोग करें 1 रिकॉर्ड के अलावा कुछ भी लौटाए जाने पर इसे अस्वीकार कर दिया जाना चाहिए, के अनुसार विधि का दस्तावेज़ीकरण
, और साथ ही आप कह रहे हैं
I need to catch if it returns more than one row...
, जो एक तार्किक विरोधाभास है।
इसका परिणाम इस प्रकार है:आपकी क्वेरी सफलतापूर्वक निष्पादित होती है, और एक से अधिक रिकॉर्ड लौटाती है, जो बदले में विधि बनाती है एक
अस्वीकार करें, और फिर आप अस्वीकृति का कारण लें और return result
. करके इसे हल किए गए कारण में बदल दें . कुल मिलाकर, आपका कोड हर जगह टूटा हुआ है।
सबसे पहले, pg-promise के साथ आप जितने रिकॉर्ड की उम्मीद कर रहे हैं, उसके अनुसार आपको सही विधि का उपयोग करना चाहिए, देखें मूल बातें ।
और फिर .then/.catch
. को हैंडल करें आपके व्यावसायिक तर्क के अनुसार। मैं यहां अधिक विशिष्ट नहीं हो सकता, क्योंकि आपने इस पर अधिक विवरण प्रदान नहीं किया है।