我和节点Js一起玩耍, 依据这个 精彩的辅导 我创建了两个提供者(SchemaProvider和实体Provider)。
他们看起来都像:
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中,我要求(供应商)在两个供应商都有定义的情况下提供。
然后我会说:
schemaProvider = new SchemaProvider( 192.168.0.50 , 27017);
entityProvider = new EntityProvider( 192.168.0.50 , 27017);
现在,我创建了一个名为 dao
(我来自java/spring 角度:-) 的模块。 由于我没有使用“ var”, 两者的变量和提供者都可以进入我的 DAO 。 如果我使用“ var ”, 供应商将无法进入 。
我的问题是:
如果我想在整个应用程序中只使用一个供应商的例子,那我该怎么办呢?
提前感谢!