我想为NodeJS创建一个模块来连接到MongoDB。我已经看到新的,更好的方法是使用MongoClient,但我无法知道如何在数据库上进行并发操作。我想要实现的目标是具有抽象数据库的功能,如下所示:
exports.insertItem(item){
//Whatever
}
根据文档,我应该以这种方式连接到数据库:
MongoClient.connect("mongodb://localhost:27017/integration_test", function(err, db) {
//Do stuff on the db object
});
问题是我应该如何重用db对象,如果它不在我可以用来导出节点中的函数的范围内?我是否应该在处理数据库的每个函数上创建一个MongoClient.connect()?
答案 0 :(得分:0)
您建立单个数据库连接并在任何地方重复使用
模块的典型模式是
export.myinsert = function(db) {
return function(whatever) {
}
}
然后再做
require('mymodule')(db)
看一个例子
答案 1 :(得分:0)
这是我用来展示整体概念的一些代码的精简版本......希望这有助于您开始使用。
var mongodb = require('mongodb'),
MongoClient = mongodb.MongoClient;
var db;
// Initialize our connection to MongoDB once
MongoClient.connect("mongodb://localhost:27017/integration_test", function(err, database){
if(err){
console.log('MongoClient connect failed');
console.log(err);
}
db = database;
});
exports.Connect = function (callback) {
callback(db);
};
exports.MongoClient = MongoClient;
exports.ObjectID = mongodb.ObjectID;
使用它
var Connect = require('myMongo').Connect;
Connect(function(db){
// then use your db.collection() stuff here
})