मैं नोड में देशी मोंगो ड्राइवर के लिए एक रैपर के रूप में MongoJS का उपयोग करने का प्रयास कर रहा हूं। मैं दस्तावेजों, populate()
, save()
तरह के तरीकों के साथ जावास्क्रिप्ट वर्गों के रूप में मेरे संग्रह में मॉडलिंग कर रहा हूँ आदिमोंगो के साथ मोंगो के साथ कनेक्शन का प्रबंधन करने का उचित तरीका क्या है?
की तरह सी # और जावा सबसे अधिक भाषाओं में, मैं स्पष्ट रूप से जोड़ने के लिए और फिर प्रत्येक क्वेरी के लिए डिस्कनेक्ट करने के लिए इस्तेमाल किया कर रहा हूँ। अधिकांश उदाहरण केवल कनेक्ट करने का एक उदाहरण देते हैं, लेकिन पूरा होने पर कनेक्शन को कभी बंद नहीं करते हैं। मैं अनिश्चित हूं कि ड्राइवर इसे स्वयं प्रबंधित करने में सक्षम है या अगर मुझे मैन्युअल रूप से ऐसा करने की ज़रूरत है। दस्तावेज़ीकरण दुर्लभ है।
User.prototype.populate = function(callback) {
var that = this;
this.db = mongo.connect("DuxDB");
this.db.collection(dbName).findOne({email : that.email}, function(err, doc){
if(!err && doc) {
that.firstName = doc.firstName;
that.lastName = doc.lastName;
that.password = doc.password;
}
if (typeof(callback) === "function"){
callback.call(that);
}
that.db.close();
});
};
मैं खोजने रहा है कि जैसे ही मैं MongoJS वस्तु पर close()
विधि कॉल के रूप में, मैं अब आगामी कॉल पर एक नया कनेक्शन खोल सकते हैं:
यहाँ प्रासंगिक कोड है। हालांकि, अगर मैं इस विधि को नहीं बुलाता हूं, तो सभी एसिंक कॉल खत्म होने के बाद नोड प्रक्रिया कभी समाप्त नहीं होती है, जैसे कि यह मोंगो से डिस्कनेक्ट करने का इंतजार कर रहा है।
मोंगो के साथ मोंगो से कनेक्शन प्रबंधित करने का उचित तरीका क्या है?
समझ में आता है। क्या कनेक्शन को बंद करने के लिए कोई उचित समय है जब मुझे ऑब्जेक्ट की आवश्यकता नहीं है (ला ला किसी प्रकार का विनाशक)? या यह ड्राइवर द्वारा खाते में लिया जाता है जब जावास्क्रिप्ट कचरा MongoJS ऑब्जेक्ट का संदर्भ एकत्र करता है? कॉल नहीं करना बंद करें() सभी कॉल समाप्त होने पर नोड प्रक्रिया को कंसोल में समाप्त करने की अनुमति नहीं देता है। – DuxPrime