sql >> Databasteknik >  >> NoSQL >> MongoDB

node-mongodb-native:Hur kan jag dela db api-objektet för anslutningsåteruppringningen via min applikation

Db.open öppnar anslutningen till mongodb och returnerar en referens till sig själv. Se här för källkoden:https ://github.com/mongodb/node-mongodb-native/blob/master/lib/mongodb/db.js#L245

Allt du vill är att vänta med att starta din expressapp, lyssna på dess port och ta emot förfrågningar tills din anslutning till mongodb har upprättats.

Så vad du kan göra är detta:

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

Vad jag dock inte är säker på är om detta är en bra idé. Den här lösningen tillåter dig inte att återskapa din anslutning om det har skett ett anslutningsavbrott eller om du startade om din mongodb-process. Så även om ovanstående kanske fungerar, kan det vara en bättre idé att skapa en metod som kommer att omsluta skapandet av en anslutning till mongodb.




  1. Använda jedis hur man skriver till en specifik plats/nod i redis-kluster

  2. 5 sätt att välja rader med det maximala värdet för sin grupp i SQL

  3. Hur man får tillbaka originaldokumentet efter aggregering

  4. MongoDB SSL Replica installationsproblem - Ej stödd certifikat