ब्लूबर्ड जावास्क्रिप्ट के लिए एक पूरी तरह से चित्रित वादा पुस्तकालय है। ब्लूबर्ड की सबसे मजबूत विशेषता यह है कि यह आपको अन्य नोड मॉड्यूल को "अनसुना" करने की अनुमति देता है ताकि उन्हें अतुल्यकालिक रूप से उपयोग किया जा सके। Promisify एक अवधारणा है जिसे कॉलबैक फ़ंक्शन पर लागू किया जाता है। इस अवधारणा का उपयोग यह सुनिश्चित करने के लिए किया जाता है कि प्रत्येक कॉलबैक फ़ंक्शन जिसे रिटर्न कुछ मूल्य कहा जाता है।
इसलिए यदि एक नोड जेएस मॉड्यूल में एक कॉलबैक फ़ंक्शन होता है जो एक मान नहीं लौटाता है, और यदि हम नोड मॉड्यूल को बढ़ावा देते हैं, तो उस विशिष्ट नोड मॉड्यूल के सभी फ़ंक्शन को स्वचालित रूप से संशोधित किया जाएगा ताकि यह सुनिश्चित हो सके कि यह एक मान लौटाता है।
तो आप MongBDB मॉड्यूल को अतुल्यकालिक रूप से चलाने के लिए ब्लूबर्ड का उपयोग कर सकते हैं। यह सिर्फ Node.js एप्लिकेशन लिखते समय आसानी का एक और स्तर जोड़ता है।
हम ब्लूबर्ड मॉड्यूल का उपयोग करने के तरीके का एक उदाहरण देखेंगे।
हमारा उदाहरण पहले "कर्मचारी संग्रह" डेटाबेस में "कर्मचारी संग्रह" के लिए एक कनेक्शन स्थापित करेगा। यदि "फिर" कनेक्शन स्थापित किया गया है, तो यह संग्रह में सभी रिकॉर्ड प्राप्त करेगा और तदनुसार कंसोल में प्रदर्शित करेगा।
ब्लूबर्ड लाइब्रेरी के साथ वादे करना
चरण 1) एनपीएम मॉड्यूल स्थापित करना
ब्लूबर्ड को नोड एप्लिकेशन के भीतर से उपयोग करने के लिए, ब्लूबर्ड मॉड्यूल की आवश्यकता होती है। ब्लूबर्ड मॉड्यूल को स्थापित करने के लिए, नीचे दिए गए कमांड को चलाएं
npm ब्लूबर्ड स्थापित करें
चरण 2) अगला चरण आपके कोड में ब्लूबर्ड मॉड्यूल को शामिल करना और पूरे MongoDB मॉड्यूल को बढ़ावा देना है। वादा करके, हमारा मतलब है कि ब्लूबर्ड सुनिश्चित करेगा कि मोंगोडीबी लाइब्रेरी में परिभाषित प्रत्येक और हर विधि एक वादा वापस करती है।
कोड स्पष्टीकरण: -
- ब्लूबर्ड लाइब्रेरी को शामिल करने के लिए आवश्यकता कमांड का उपयोग किया जाता है।
- MongoDB मॉड्यूल प्रदान करने वाली हर विधि का एक async संस्करण बनाने के लिए Bluebird's .promisifyAll () विधि का उपयोग करें। यह सुनिश्चित करता है कि MongoDB मॉड्यूल की प्रत्येक विधि पृष्ठभूमि में चलेगी और यह सुनिश्चित करेगी कि MongbDB लाइब्रेरी में प्रत्येक विधि कॉल के लिए एक वादा वापस किया जाए।
चरण 3) अंतिम चरण हमारे डेटाबेस से कनेक्ट करना है, हमारे संग्रह के सभी रिकॉर्डों को पुनः प्राप्त करें और उन्हें हमारे कंसोल लॉग में प्रदर्शित करें।
कोड स्पष्टीकरण: -
- आप देखेंगे कि डेटाबेस से जुड़ने के लिए हम सामान्य कनेक्शन विधि के बजाय "कनेक्टएसिंक" विधि का उपयोग कर रहे हैं। ब्लूबर्ड वास्तव में MongoDB लाइब्रेरी में प्रत्येक विधि में Async कीवर्ड जोड़ता है जो उन कॉलों को अलग करता है जो वादे वापस करते हैं और जो नहीं करते हैं। इसलिए कोई गारंटी नहीं है कि Async शब्द के बिना विधियाँ एक मान लौटाएंगी।
- ConnectAsync विधि के समान, अब हम mongoDB 'Employee' संग्रह में सभी रिकॉर्ड वापस करने के लिए findAsync विधि का उपयोग कर रहे हैं।
- अंत में, यदि findAsync एक सफल वादा देता है तो हम कोड के एक ब्लॉक को संग्रह में प्रत्येक रिकॉर्ड के माध्यम से पुनरावृत्त करने के लिए परिभाषित करते हैं और उन्हें कंसोल लॉग में प्रदर्शित करते हैं।
यदि उपरोक्त चरणों को ठीक से किया जाता है, तो कर्मचारी संग्रह में सभी दस्तावेजों को कंसोल में प्रदर्शित किया जाएगा जैसा कि नीचे दिए गए आउटपुट में दिखाया गया है।
यहाँ आपके संदर्भ के लिए कोड है
var Promise = require('bluebird');var mongoClient = Promise.promisifyAll(require('mongodb')).MongoClient;var url = 'mongodb://localhost/EmployeeDB';mongoClient.connectAsync('mongodb://localhost/EmployeeDB').then(function(db) {return db.collection('Employee').findAsync({})}).then(function(cursor) {cursor.each(function(err, doc) {console.log(doc);})});