MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

node-mongodb-native:Comment puis-je partager l'objet db api du rappel de connexion via mon application

Db.open ouvre la connexion à mongodb et renvoie une référence à lui-même. Voir ici pour le code source :https ://github.com/mongodb/node-mongodb-native/blob/master/lib/mongodb/db.js#L245

Tout ce que vous voulez, c'est attendre que votre connexion à mongodb soit établie.

Voici ce que vous pourriez faire :

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

Ce dont je ne suis pas sûr, c'est si c'est une bonne idée. Cette solution ne vous permet pas de recréer votre connexion s'il y a eu une rupture de connexion ou si vous avez redémarré votre processus mongodb. Ainsi, bien que ce qui précède puisse fonctionner, il serait peut-être préférable de créer une méthode qui enveloppera la création d'une connexion à mongodb.