sql >> データベース >  >> NoSQL >> MongoDB

node-mongodb-native:アプリケーションを介して接続コールバックのdbapiオブジェクトを共有するにはどうすればよいですか

    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. 配列内のサブドキュメントのMongodb集計

    2. mongodbの更新が一致したドキュメントが失敗する

    3. レール/ルビーでredisを使用する場合のNestとredis-namespacegemsの平均の違いは何ですか

    4. Pymongoを使用してMongoDBで単一のフィールドを選択するにはどうすればよいですか?