मैं एक 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 को कैसे सक्षम कर सकता हूं?
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
});
इसलिए मुझे कोई त्रुटि नहीं मिल रही थी क्योंकि कोई त्रुटि नहीं थी, केवल कॉल के प्रवाह में एक विराम था।
संबंधित सवाल
जुड़े हुए प्रश्न
नए सवाल
node.js
Node.js एक घटना-आधारित, गैर-अवरोधक, अतुल्यकालिक I / O रनटाइम है जो Google के V8 जावास्क्रिप्ट इंजन और libuv लाइब्रेरी का उपयोग करता है। इसका उपयोग उन अनुप्रयोगों को विकसित करने के लिए किया जाता है जो क्लाइंट पर और साथ ही सर्वर साइड पर जावास्क्रिप्ट को चलाने की क्षमता का भारी उपयोग करते हैं और इसलिए कोड के पुन: प्रयोज्य और संदर्भ स्विचिंग की कमी से लाभान्वित होते हैं।