如果未建立连接,则创建与mongodb的连接

时间:2015-12-30 05:32:21

标签: node.js mongodb express mongoose

我是node.js和mongoose的新手。

我正在尝试检查是否存在提供名称的数据库,

如果存在,        建立连接并使用相同的。

如果没有,      然后用一些集合创建数据库。

我正在使用mongoose,因为mongoose提供了3种方法来建立连接。我无法弄清楚哪个是最适合我的套件以及如何处理它们。

  • connect
  • 的createConnection
  • 连接

通过谷歌搜索,我成功地确定了使用createConnection是否存在数据库名称。

var Admin = mongoose.mongo.Admin;
var dbName='test';
        /// create a connection to the DB    
        var connection = mongoose.createConnection('mongodb://localhost/' +dbName );
        connection.on('open', function () {
            // connection established
            new Admin(connection.db).listDatabases(function (err, result) {
                console.log('listDatabases succeeded');
                for (var i in result.databases) {
                    if (result.databases[i].name == dbName) {
                        mongoose.connect('mongodb://localhost/' + dbName);
                        next();
                        break; 
                    }
                }
            });
        });

我在路由拦截器中编写了上面的代码,因此对于每个请求,如果给定的db名称已经存在,上面的代码将被执行并尝试连接到mongodb。

任何帮助都会非常明显......

0 个答案:

没有答案