3

REST API を提供する高速アプリを開発しています。mongoskin を介して mongodb を使用します。db アクセスからルーティングを分割するレイヤーが必要でした。モジュール ファイルを作成してデータベース ブリッジを作成する例を見てきました。models/profiles.js の例です。

var mongo = require('mongoskin'),
db = mongo.db('localhost:27017/profiler'),
profs = db.collection('profiles');

exports.examplefunction = function (info, cb) {
  //code that acess the profs collection and do the query
}

後で、このモジュールはルーティング ファイルで必要になります。

私の質問は、コレクションごとに 1 つのモジュールを作成するためにこのアプローチを使用すると、効率的でしょうか? そうすることで、mongoから複数回(不必要に)接続および切断するという問題がありますか?

あるモジュールから各コレクションを処理する他のモジュールに db 変数をエクスポートすると、問題が解決するのではないかと考えていましたが、よくわかりません。

4

1 に答える 1

0

単一の接続を使用してから、共有dbインスタンスを渡すモジュールを作成します。モジュールごとに個別のdbプールを設定することは避けたいと考えています。これを行う1つは、モジュールをクラスとして構築することです。

exports.build = function(db) {
 return new MyClass(db);
}

var MyClass = function(db) {
  this.db = db;
}

MyClass.doQuery = function() {
}
于 2012-09-23T15:17:45.503 に答える