sql >> Database teknologi >  >> NoSQL >> MongoDB

node-mongodb-native:Hvordan kan jeg dele db api-objektet for forbindelsesopkaldet gennem min applikation

Db.open åbner forbindelsen til mongodb og returnerer en reference til sig selv. Se her for kildekoden:https ://github.com/mongodb/node-mongodb-native/blob/master/lib/mongodb/db.js#L245

Det eneste, du ønsker, er at vente med at starte din ekspresapp, lytte på dens port og modtage anmodninger, indtil din forbindelse til mongodb er etableret.

Så hvad du kan gøre er dette:

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

Hvad jeg dog ikke er sikker på er, om det er en god idé. Denne løsning tillader dig ikke at genskabe din forbindelse, hvis der har været en forbindelsesbrud, eller du genstartede din mongodb-proces. Så selvom ovenstående måske virker, kan det være en bedre idé at skabe en metode, der vil omslutte oprettelsen af ​​en forbindelse til mongodb.




  1. Hvordan kan jeg hente datetiime fra mongodb? Ved at sammenligne dataene med jDateChosser Java

  2. Node js / MongoDB replika sæt array i javascript

  3. MongoDB Java indlejrede dokumenter er ikke tilgængelige ved hjælp af prikker i nøglenavn

  4. Rengør brugerinput i Mongoose