https://jira.mongodb.org/browse/NODE-1868 से दोबारा पोस्टिंग:
बहिष्करण संदेशों की संभावना है क्योंकि client.connect
कई बार कहा जा रहा है। कुल मिलाकर, कॉल करना client.connect
वर्तमान में कई बार (ड्राइवर के रूप में v3.1.13
) में अपरिभाषित व्यवहार है, और इसकी अनुशंसा नहीं की जाती है। यह ध्यान रखना महत्वपूर्ण है कि एक बार वादा connect
. से वापस आ गया हल हो जाता है, क्लाइंट तब तक जुड़ा रहता है जब तक आप client.close
. को कॉल नहीं करते :
const client = new MongoClient(...);
client.connect().then(() => {
// client is now connected.
return client.db('foo').collection('bar').insertOne({
}).then(() => {
// client is still connected.
return client.close();
}).then(() => {
// client is no longer connected. attempting to use it will result in undefined behavior.
});
क्लाइंट डिफ़ॉल्ट रूप से प्रत्येक सर्वर से कई कनेक्शन रखता है जिससे वह जुड़ा हुआ है, और एक साथ कई कार्यों के लिए उपयोग किया जा सकता है*। आपको client.connect
चलाना ठीक होना चाहिए एक बार, और फिर क्लाइंट ऑब्जेक्ट पर अपना संचालन चलाना
* ध्यान दें कि क्लाइंट थ्रेड-सुरक्षित या कांटा-सुरक्षित नहीं है, इसलिए इसे कांटे में साझा नहीं किया जा सकता है, और यह नोड के cluster
के साथ संगत नहीं है या worker_threads
मॉड्यूल।