2015-08-10 10 views
6

इस सवाल में जवाब अभी भी प्रासंगिक हैं: How can I promisify the MongoDB native Javascript driver using bluebird?क्या मोंगोडीबी चालक को प्रचारित करना अभी भी आवश्यक है?

मैं कब से इस अद्यतन किया गया था पता नहीं है, लेकिन MongoDB के लिए 2.0 जे एस चालक विकल्पों में एक संपत्ति आपत्ति promiseLibrary है: http://mongodb.github.io/node-mongodb-native/2.0/api/MongoClient.html

और सबसे तरीकों/फ़ंक्शन एक वादा वापस करते हैं, उदाहरण के लिए Cursor.toArray()

हालांकि, मैं एक उदाहरण के इस नए विकल्प का उपयोग नहीं मिल सकता है, लेकिन यह आसान नहीं होगा, बस का उपयोग कर:

MongoClient.connect('mongodb://URL', { promiseLibrary: require('bluebird') }); 

या इस परिभाषा गलत है? - इस मामले में, इसे कैसे ठीक से परिभाषित किया जाना चाहिए?

अद्यतन:

कोड io.js पर चल रहा है तो मैं भी रूप में चालक ES6 वादों का प्रयोग करेंगे एक promiseLibrary निर्दिष्ट करने की आवश्यकता नहीं हो सकता है? - हालांकि, माना जाता है कि Bluebird वादों धीमी कर रहे हैं:

Why are native ES6 promises slower and more memory-intensive than bluebird?

Update2: मैं Bluebird टैग जोड़ने के बाद - हो सकता है Bluebird पर काम कर रहे लोगों को अधिक जानकारी प्रदान कर सकते हैं अगर promisifying वास्तव में MongoDB के स्वयं के उपयोग की तुलना में बेहतर है कार्यान्वयन?

उत्तर

1

क्या अभी भी मोंगोडीबी चालक को प्रचारित करना आवश्यक है?

नहीं, अब उन्होंने ब्लूबर्ड जैसे वादे पुस्तकालयों के समर्थन में बनाया है। मुझे लगता है कि हमें अलग-अलग सवाल पूछना चाहिए हालांकि:

क्या मोंगोडीबी चालक को बढ़ावा देने का अच्छा विचार है?

शायद, Bluebird और अधिक हल्के से लपेटकर द्वारा मोंगो ड्राइवर की तुलना में वादों को कॉलबैक एपीआई परिवर्तित आंतरिक रूप से करता है पर एक बेहतर काम करता है। यह अभी भी "पहले के दिनों में" के रूप में प्रचार करने के लिए तेज़ होगा।

+5

व्यक्तिगत रूप से मतभेदों का एक उदाहरण देखना पसंद करेंगे। साझा करने के लिए 5 मिनट अतिरिक्त? –

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