मैं एक NodeJS आवेदन विकसित कर रहा हूँ। मुझे किसी ऑब्जेक्ट को डेटाबेस में सहेजने में समस्या हुई; मेरे नियंत्रक में कोड था:

console.log("Before save: " + transaction);
transaction = await transaction.save();
console.log("After save");

नोड एप्लिकेशन चलाने वाले टर्मिनल में, मैंने देखा:

Before save: {
  _id: ...,
  created: ...,
  ...
}

और कुछ नहीं, जबकि ब्राउज़र पृष्ठ ऐसा लगता है जैसे यह लोड हो रहा है।

मैंने इसे try-catch ब्लॉक में लपेटने की कोशिश की:

try {
  transaction = await transaction.save();
} catch (err) {
  console.log(err);
}

और मुझे टर्मिनल में एक ही आउटपुट मिलता है। मुझे लगता है कि चूंकि मुझे बिना कोशिश किए कंसोल में त्रुटि दिखाई नहीं दे रही है, इसलिए मैं इसे इसके साथ भी नहीं देखता हूं।

एक समस्या यह थी कि उस वस्तु के लिए MongoDB संग्रह मौजूद नहीं था (और मैंने इसके बारे में पूछा यहां)। लेकिन मुझे अभी भी एक और त्रुटि है।

मैं विकास के दौरान NodeJS चलाने वाले टर्मिनल में उन त्रुटियों (अनुपलब्ध संग्रह, और जिस त्रुटि को मैं अभी भी ढूंढ रहा हूं) दिखाने के लिए MongoDB को कैसे सक्षम कर सकता हूं?

0
miguelmorin 31 मार्च 2020, 17:10

1 उत्तर

सबसे बढ़िया उत्तर

मुझे समस्या मिली: मैंने प्री-सेव हुक में एक next(); छोड़ा था:

SomeSchema.pre('save', function(next) {
  // any logic you require
  if (this.condition) {
    // ...
  }
  next();  // <- this is required, else Mongo won't save nor return
});

इसलिए मुझे कोई त्रुटि नहीं मिल रही थी क्योंकि कोई त्रुटि नहीं थी, केवल कॉल के प्रवाह में एक विराम था।

0
miguelmorin 1 अप्रैल 2020, 05:51