MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

node-mongodb-native:Jak mogę udostępnić obiekt db api wywołania zwrotnego połączenia za pośrednictwem mojej aplikacji?

Db.open otwiera połączenie z mongodb i zwraca referencję do siebie. Zobacz tutaj kod źródłowy:https ://github.com/mongodb/node-mongodb-native/blob/master/lib/mongodb/db.js#L245

Wszystko, czego chcesz, to wstrzymać się z uruchomieniem ekspresowej aplikacji nasłuchującej na jej porcie i otrzymywania żądań, dopóki nie zostanie nawiązane połączenie z mongodb.

Możesz więc zrobić to:

var mongodb = require("mongodb"),
    express = require("express"),
    mongoServer = new mongodb.Server('localhost', 27017),
    dbConnector = new mongodb.Db('example', mongoServer),
    db;

var app = new express();

app.get('/products', function(req, res, next) {
  db.collection('products', function(err, collection) {
    if (err) next(new Error(err));
    collection.find({}, function(err, products) {
      res.send(products);
    });
  });
});

db_connector.open(function(err, opendb) {
  if (err) throw new Error(err);
  db = opendb;
  app.listen(3000);
});

Nie jestem jednak pewien, czy to dobry pomysł. To rozwiązanie nie pozwala na ponowne utworzenie połączenia, jeśli nastąpiła przerwa w połączeniu lub gdy proces mongodb został zrestartowany. Więc chociaż powyższe może działać, lepszym pomysłem może być stworzenie metody, która zawija tworzenie połączenia z mongodb.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Przykład wywołania AJAX do/z MongoDB dla Node/Express?

  2. Przechowywanie zagnieżdżonych struktur za pomocą mgo

  3. Konwertuj warunki zapytania JSON na operacje MongoDB/Mongoose

  4. Agregacja Mongo z danymi podzielonymi na strony i sumami

  5. Jak połączyć się z zestawem replik z powłoki MongoDB?