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

किसी ऑब्जेक्ट को कैसे निर्यात करें जो केवल एसिंक कॉलबैक में उपलब्ध हो?

सबसे अच्छा विकल्प, जैसे टिप्पणियों में सुझाया गया द्वारा elclanrs , एक वादा निर्यात करना है:

// database.js
var MongoClient = require('mongodb').MongoClient,
    Q = require('q'),
    connect = Q.nbind(MongoClient.connect, MongoClient);

var promise = connect(/* url */);        

module.exports = {
  connect: function () {
    return promise;
  }
}

// app.js
var database = require('./database');

database.connect()
  .then(function (db) {
    app.get('/', function (req, res) {
      db.collection(/* … */);
    });
  })
  .catch(function (err) {
    console.log('Error connecting to DB:', err);
  })
  .done();

(मैं भयानक Q का उपयोग कर रहा हूं पुस्तकालय यहाँ।)

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

इसका नकारात्मक पक्ष यह है कि यह हर बार require('database.js) पर एक कनेक्शन खोलेगा। (बमर!)

// DO NOT USE: left for the sake of history

// database.js
var MongoClient = require('mongodb').MongoClient;

function connect(cb) {
  MongoClient.connect(/* the URL */, cb);
}

module.exports = {
  connect: connect
}

// app.js
var database = require('./database');

database.connect(function (err, db) {
  app.get('/', function (req, res) {
      db.collection(/* … */);
  });
});


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. GridFs में फ़ाइल बनाना (MongoDb)

  2. MongoDB नोड जाँचता है कि क्या ऑब्जेक्टिड मान्य है

  3. स्प्रिंग डेटा mongodb MongoTemplate का उपयोग करके किसी दस्तावेज़ से एक संपत्ति को हटा दें

  4. कैसे unhideIndex () MongoDB में काम करता है

  5. तर्क नोडज में एक स्ट्रिंग होना चाहिए