sql >> Databáze >  >> NoSQL >> MongoDB

node-mongodb-native:Jak mohu sdílet objekt db api zpětného volání připojení prostřednictvím mé aplikace

Db.open otevře připojení k mongodb a vrátí odkaz na sebe. Zdrojový kód naleznete zde:https ://github.com/mongodb/node-mongodb-native/blob/master/lib/mongodb/db.js#L245

Jediné, co chcete, je odložit spuštění vaší expresní aplikace, která bude naslouchat na svém portu a přijímat požadavky, dokud nebude navázáno vaše připojení k mongodb.

Takže byste mohli udělat toto:

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);
});

Čím si ale nejsem jistý je, jestli je to dobrý nápad. Toto řešení vám neumožňuje znovu vytvořit připojení, pokud došlo k přerušení připojení nebo jste restartovali proces mongodb. Takže i když výše uvedené může fungovat, může být lepší vytvořit metodu, která zabalí vytvoření připojení k mongodb.




  1. Doporučené postupy pro efektivní ukládání hash md5 v MongoDB

  2. MongoRepository @Query Nepodařilo se analyzovat řetězec jako datum

  3. MongoDB na počítači se systémem Windows 7:Nelze vytvořit žádné připojení

  4. takže vaše HBase je rozbitá