私はnode.jsで遊んでいて、この素晴らしいチュートリアルに基づいて2つのプロバイダー(SchemaProviderとEntityProvider)を作成しました。
それらは両方とも次のようになります。
var Db = require('mongodb').Db;
var Connection = require('mongodb').Connection;
var Server = require('mongodb').Server;
var BSON = require('mongodb').BSON;
var ObjectID = require('mongodb').ObjectID;
EntityProvider = function(host, port) {
this.db = new Db('timerange', new Server(host, port, {auto_reconnect: true}, {}));
this.db.open(function() {
console.log("Schema Provider has connected and may be used as of now.");
});
};
EntityProvider.prototype.getCollection = function(callback) {
this.db.collection('entity', function(error, collection) {
if (error) {
callback(error)
} else {
callback(null, collection);
}
});
};
EntityProvider.prototype.findById = function(id /* The id to be found */, callback) {
this.getCollection(function(error, collection) {
if (error) {
callback(error);
} else {
collection.findOne({_id: id}, function(error, result) {
if (error) {
callback (error);
} else {
callback(null, result);
}
});
}
});
};
app.jsでは、両方のプロバイダーが定義されているrequire('provider')が必要です。
それから私はします:
schemaProvider = new SchemaProvider('192.168.0.50', 27017);
entityProvider = new EntityProvider('192.168.0.50', 27017);
dao
ここで、 (java /springの観点から:-)という名前のモジュールを作成しました。「var」を使用しなかったため、DAOでは両方の変数とプロバイダーにアクセスできます。「var」を使用した場合、プロバイダーにアクセスできません。
私の質問は:
アプリケーション全体でプロバイダーのインスタンスを1つだけ使用したい場合、どうすればよいですか?
前もって感謝します!