मैं एक ऐसी स्क्रिप्ट का उपयोग कर रहा हूं, जो लगातार चलने के लिए नहीं है, और मैं सामना कर रहा हूं जो कि एक बहुत ही सरल मुद्दा प्रतीत होता है, फिर भी मुझे उत्तर नहीं मिल रहा है; बस एक बार डालने के बाद मैं किसी भी मैंगोज फंक्शन को कॉल करता हूं, जो मेरे नोडज उदाहरण को भेजने के अनुरोधों को कभी नहीं रोकता है और मुझे इसे मैन्युअल रूप से मारना है, जैसे कि Ctrl + c या Program.exit ()।
कोड इस तरह दिखता है:
var mongoose = require('mongoose');
// if my program ends after this line, it shuts down as expected, my guess is that the connection is not really done here but only on the first real request ?
mongoose.connect('mongodb://localhost:27017/somedb');
// define some models
// if I include this line for example, node never stop afterwards
var MyModel = mongoose.model('MyModel', MySchema);
मैंने mongoose.disconnect () के लिए कॉल जोड़ने की कोशिश की, लेकिन परिणाम नहीं हुआ। उस के अलावा, सब कुछ ठीक काम करता है (खोज, बचत, ...)।
यह ठीक वैसा ही मुद्दा है जैसा इस व्यक्ति का है, दुख की बात है कि उसे कोई जवाब नहीं मिला: https://groups.google.com/group/mongoose-orm/browse_thread/thread/c72cc1c51c76e661
धन्यवाद
EDIT: नीचे दिए गए उत्तर को स्वीकार कर लिया क्योंकि यह तकनीकी रूप से सही है, लेकिन अगर किसी ने कभी भी इस समस्या को फिर से मारा, तो ऐसा लगता है कि मोंगोज़ और / या मोंगोडब ड्राइवर वास्तव में कनेक्शन को बंद नहीं करता है जब आप पूछते हैं कि क्या अभी भी प्रश्न चल रहे हैं।
यह डिस्कनेक्ट कॉल को बिल्कुल भी याद नहीं करता है, यह प्रश्न समाप्त होने के बाद एक बार नहीं करता है; यह आपके कॉल को बिना किसी अपवाद या किसी भी प्रकार के अपवाद के साथ जोड़ता है, और वास्तव में कनेक्शन को कभी बंद नहीं करता है।
इसलिए आपके पास यह है: सुनिश्चित करें कि डिस्कनेक्ट () को कॉल करने से पहले प्रत्येक क्वेरी को संसाधित किया गया है यदि आप चाहते हैं कि यह वास्तव में काम करे।