2012-09-29 15 views
12

मैं Node.js एक्सप्रेस ऐप्लिकेशन में नेवला के माध्यम से MongoDB के लिए एक एकल कनेक्शन करने वाले कर रहा हूँ और अंत में नियंत्रक कि डेटाबेस से सभी उपयोगकर्ताओं खींचती है: आवेदन के दौरानMongoose.js एक कनेक्ट से MongoDB करने के लिए कई कनेक्शन बनाता है() फोन

app.get('/users', function (req, res) { 
    return User.find(function (err, users) { 
    if (!err) { 
     return res.send(users); 
    } 
    }); 
}); 

ये डीबी कनेक्शन खुला शुरू करने और वे Node.js आवेदन की अवधि के लिए खुले रहते हैं।

मुझे परेशान करता है कि मेरे पास 5 कनेक्शन क्यों खुले हैं? जैसे ही मैं node.js ऐप बंद करता हूं, सभी 5 कनेक्शन बंद होते हैं। enter image description here

संबंधित टिप्पणी: एक REST API सर्वर के लिए यह बेहतर MongoDB कनेक्शन हमेशा खुला है। या क्या प्रत्येक उपयोगकर्ता अनुरोध के लिए कनेक्शन मैन्युअल रूप से खोलने/बंद करना बेहतर है? डी

उत्तर

39

ऐसा इसलिए है क्योंकि मोंगोस 5 कनेक्शन (डिफ़ॉल्ट रूप से) के पूल का उपयोग करता है जो आपके पूरे एप्लिकेशन में साझा किया जाता है। सर्वोत्तम प्रदर्शन के लिए, बस उन्हें खोलने के लिए सबसे अच्छा है।

आप विकल्प पैरामीटर के माध्यम से mongoose.connect पर डिफ़ॉल्ट व्यवहार को बदल सकते हैं। उदाहरण के लिए:

mongoose.connect('localhost', 'test', { server: { poolSize: 3 }}); // Use 3 connections 
+0

धन्यवाद। मैं उसी चीज़ पर हैरान हो रहा था। – chovy

+0

बहुत बढ़िया, उस स्पष्टीकरण के लिए धन्यवाद :-)! –

+0

इस उत्तर के लिए धन्यवाद, मैं यह पता लगाने की कोशिश कर पागल हो रहा था कि यह एक समय में 5 कनेक्शन क्यों खोल रहा था। – Benny

संबंधित मुद्दे