MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

node-mongodb-native:Làm cách nào để chia sẻ đối tượng db api của lệnh gọi lại kết nối thông qua ứng dụng của tôi

Db.open mở kết nối đến mongodb và trả về một tham chiếu cho chính nó. Xem mã nguồn tại đây: https ://github.com/mongodb/node-mongodb-native/blob/master/lib/mongodb/db.js#L245

Tất cả những gì bạn muốn là tiếp tục khởi động ứng dụng express của bạn, lắng nghe trên cổng của nó và nhận yêu cầu cho đến khi kết nối của bạn với mongodb được thiết lập.

Vì vậy, những gì bạn có thể làm là:

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

Điều tôi không chắc là liệu đây có phải là một ý tưởng hay hay không. Giải pháp này không cho phép bạn tạo lại kết nối của mình nếu bị ngắt kết nối hoặc bạn đã khởi động lại quy trình mongodb của mình. Vì vậy, mặc dù cách trên có thể hoạt động, nhưng có thể là một ý tưởng tốt hơn để tạo một phương thức sẽ bao bọc việc tạo kết nối đến mongodb.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mgo - hiệu suất truy vấn dường như luôn chậm (500-650ms)

  2. Làm cách nào để lấy bộ sưu tập tài liệu từ con trỏ mongodb?

  3. MongoDB - Sắp xếp kết quả của một truy vấn

  4. Xem tạo tài liệu với MongoDB Streams

  5. Sự khác biệt giữa safe:true và safe:false trong kết nối với mongoskin là gì? và sử dụng nó như thế nào?