जैसा कि उल्लेख किया गया 3.1.0-beta4
है कि ड्राइवर की रिहाई को "जंगली में जारी किया गया" चीजों की शक्ल से थोड़ी जल्दी मिली। रिलीज, MongoDB 4.0 आगामी रिलीज में नई सुविधाओं का समर्थन करने और कुछ अन्य एपीआई परिवर्तन करने के लिए प्रगति का काम है।
वर्तमान चेतावनी को ट्रिगर करने वाला एक ऐसा परिवर्तन useNewUrlParser
विकल्प है, जो यूआरआई वास्तव में काम करता है के आसपास के कुछ परिवर्तनों के कारण होता है। उस पर और बाद में।
जब तक चीजें "बस जाती हैं", यह संभवतः रिलीज के लिए कम से कम मामूली संस्करण में "पिन" करने के लिए उचित होगा 3.0.x
:
"dependencies": {
"mongodb": "~3.0.8"
}
कि 3.1.x
नोड मॉड्यूल के लिए "ताजा" प्रतिष्ठानों पर स्थापित की जा रही शाखा को रोकना चाहिए । यदि आपने पहले से ही एक "नवीनतम" रिलीज़ स्थापित किया है जो "बीटा" संस्करण है, तो आपको अपने पैकेज (और package-lock.json
) को साफ करना चाहिए और सुनिश्चित करें कि आप एक 3.0.x
श्रृंखला रिलीज के लिए नीचे टकराएंगे ।
वास्तव में "नए" कनेक्शन यूआरआई विकल्पों का उपयोग करने के लिए, मुख्य प्रतिबंध वास्तव में port
कनेक्शन स्ट्रिंग पर शामिल करना है :
const { MongoClient } = require("mongodb");
const uri = 'mongodb://localhost:27017'; // mongodb://localhost - will fail
(async function() {
try {
const client = await MongoClient.connect(uri,{ useNewUrlParser: true });
// ... anything
client.close();
} catch(e) {
console.error(e)
}
})()
नए कोड में यह अधिक "सख्त" नियम है। मुख्य बिंदु यह है कि वर्तमान कोड अनिवार्य रूप से "नोड-देशी-ड्राइवर" (npm mongodb
) रिपॉजिटरी कोड का हिस्सा है, और "नया कोड" वास्तव में mongodb-core
लाइब्रेरी से आयात करता है जो "सार्वजनिक" नोड ड्राइवर को "अंडरपिन" करता है।
जोड़ा जा रहा "विकल्प" का बिंदु नए कोड के विकल्प को जोड़कर संक्रमण को "कम" करना है इसलिए नए पार्सर (वास्तव में चारों ओर आधारित url
) का उपयोग कोड को जोड़ने और अपग्रेड चेतावनी को साफ़ करने में किया जा रहा है, और इसलिए इसका सत्यापन किया जा रहा है आपके कनेक्शन स्ट्रिंग्स वास्तव में नए पार्सर की अपेक्षा के अनुरूप हैं।
भविष्य के रिलीज में 'विरासत' पार्सर को हटा दिया जाएगा और फिर नया पार्सर बस वही होगा जो विकल्प के बिना भी उपयोग किया जाता है। लेकिन उस समय तक, यह उम्मीद की जाती है कि सभी मौजूदा कोड के पास नए पार्सर की उम्मीद के खिलाफ अपने मौजूदा कनेक्शन के तार का परीक्षण करने का पर्याप्त अवसर था।
इसलिए यदि आप जारी किए गए नए ड्राइवर सुविधाओं का उपयोग शुरू करना चाहते हैं, तो उपलब्ध beta
और बाद के रिलीज का उपयोग करें और आदर्श रूप से सुनिश्चित करें कि आप एक कनेक्शन स्ट्रिंग प्रदान कर रहे हैं जो useNewUrlParser
विकल्प को सक्षम करके नए पार्सर के लिए मान्य है MongoClient.connect()
।
यदि आपको वास्तव में MongoDB 4.0 रिलीज के पूर्वावलोकन से संबंधित सुविधाओं तक पहुंच की आवश्यकता नहीं है, तो संस्करण को 3.0.x
पहले बताए गए श्रृंखला में पिन करें । यह प्रलेखित और "पिनिंग" के रूप में काम करेगा यह सुनिश्चित करता है3.1.x
रिलीज़ अपेक्षित आश्रितता पर "अपडेट" नहीं हैं जब तक आप वास्तव में एक स्थिर संस्करण स्थापित नहीं करना चाहते हैं।
beta
संस्करण से आ रहा है जो किसी भी तरह सप्ताहांत में npm पर जारी किया गया था। इसके बारे में चिंता न करें जब तक कि एपीआई वास्तव में अंतिम रूप नहीं ले लेता। आपने एक स्थिर संस्करण स्थापित करने के लिए सही काम किया।