MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

node-mongodb-native:Как мога да споделя db api обекта на обратното извикване на връзката чрез моето приложение

Db.open отваря връзката към mongodb и връща препратка към себе си. Вижте тук за изходния код:https ://github.com/mongodb/node-mongodb-native/blob/master/lib/mongodb/db.js#L245

Всичко, което искате, е да отложите стартирането на своето експресно приложение, слушайки неговия порт и получавайки заявки, докато не се установи връзката ви с mongodb.

И така, това, което можете да направите, е следното:

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

Това, в което обаче не съм сигурен, е дали това е добра идея. Това решение не ви позволява да пресъздадете връзката си, ако е имало прекъсване на връзката или сте рестартирали процеса на mongodb. Така че, докато горното може да работи, може би е по-добра идея да създадете метод, който ще обвие създаването на връзка към mongodb.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Преобразувайте ObjectID (Mongodb) в String в JavaScript

  2. Как да архивирате вашата Open edX MongoDB база данни

  3. Група драйвери на MongoDB .NET по времеви диапазон

  4. Върнете само съвпадащи елементи на поддокумент в рамките на вложен масив

  5. MongoDb Aggregation:Как мога да групирам масив-1 въз основа на друг масив-2, когато са дадени масив-1 и масив-2?