MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

Node.js मोंगोस्किन के साथ वादा करता है

आप ब्लूबर्ड के साथ इस तरह पूरे मॉड्यूल का वादा कर सकते हैं:

var Promise = require("bluebird");
var mongoskin = require("mongoskin");
Object.keys(mongoskin).forEach(function(key) {
  var value = mongoskin[key];
  if (typeof value === "function") {
    Promise.promisifyAll(value);
    Promise.promisifyAll(value.prototype);
  }
});
Promise.promisifyAll(mongoskin);

यह आपके आवेदन में केवल एक ही स्थान पर एक बार के लिए किया जाना चाहिए, आपके आवेदन कोड में कहीं भी नहीं।

उसके बाद आप सामान्य रूप से केवल Async प्रत्यय को छोड़कर विधियों का उपयोग करते हैं और कॉलबैक पास नहीं करते हैं:

req.db.collection('users').find().toArrayAsync()
  .then(function(doc) {
    if (doc) {
      return req.db.collection('users').find().toArrayAsync();
    }
  })
  .then(function(doc) {
    if (doc) {
      return req.db.collection('users').find().toArrayAsync();
    }
  })
  .then(function(doc) {
    if (doc) {
      return req.db.collection('users').find().toArrayAsync();
    }
  });

तो फिर, अगर आप

. जैसे फ़ंक्शन को कॉल करते हैं
foo(a, b, c, function(err, result) {
    if (err) return console.log(err);
    //Code
});

प्रॉमिस-रिटर्निंग वर्जन को इस तरह कहा जाता है:

fooAsync(a, b, c).then(...)

(बिना पकड़ी हुई त्रुटियां स्वचालित रूप से लॉग हो जाती हैं, इसलिए यदि आप केवल इसे लॉग करने जा रहे हैं तो आपको उनकी जांच करने की आवश्यकता नहीं है)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongo DB, PHP किसी दस्तावेज़ में फ़ील्ड जोड़ें या अपडेट करें

  2. मोंगो डीबी जो मौजूद नहीं है लेकिन कनेक्शन में दिखाई देता है

  3. MongoDB स्कीमा प्रदर्शन अनुकूलन

  4. 'व्यक्ति रिपोजिटरी' नाम से बीन बनाने में त्रुटि:init विधि का आह्वान विफल; नेस्टेड अपवाद com.mongodb.util.JSONParseException है:

  5. त्रुटि:चाइल्ड प्रक्रिया विफल, त्रुटि संख्या 48 के साथ बाहर निकली