0
我正在玩node.js并基于此wonderful tutorial我创建了两个提供程序(SchemaProvider和EntityProvider)。node.js:导入模块的范围
他们看都像是:
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 /弹簧观点:-))。由于我没有使用“var”,因此这两个变量和提供者都可以在我的DAO中访问。如果我使用“var”,那么提供者将无法访问。
我的问题是:
如果我想使用在整个应用程序只有一个供应商的情况下,我会怎么做呢?
在此先感谢!
我会测试它尽快:-) – Jan
好吧,现在我有一个单身,但另一个问题。我调用this.getCollection,然后执行一个collection.find({})。toArray(function(err,arr){console.log(arr)});但没有任何反应:( – Jan