0

我想为 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() 吗?

4

2 回答 2

0

您建立一个数据库连接并在任何地方重用它

模块的典型模式是

export.myinsert = function(db) {
  return function(whatever) {
  }
}

然后做

require('mymodule')(db)

看一个例子

https://github.com/christkv/tic-tac-toe-steps

于 2013-08-12T12:10:54.943 回答
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
})
于 2015-11-02T15:45:09.280 回答