如何使mongoDB实例可用于node.js中的所有其他模块

时间:2013-03-18 06:28:43

标签: node.js mongodb

在我的应用程序中使用node.js和mongoDB.Below是我的示例代码。

var mongodb = require('mongodb');
var server = new mongodb.Server("localhost", 27017, {});

new mongodb.Db('test', server, {w: 1}).open(function (error, client) {
    if (error) throw error;
    var collection = new mongodb.Collection(client, 'test_collection');
    collection.insert({hello: 'world'}, {safe:true},
    function(err, objects) {
        if(!err){
            console.log('Data inserted successfully.');
        }
        if (err && err.message.indexOf('E11000 ') !== -1) {
            // this _id was already inserted in the database
        }
    });
});   

现在我需要mongoDB实例到我的app中的其他模块。我怎么能这样做。

1 个答案:

答案 0 :(得分:0)

一种简单的方法,如果我们假设您发布的代码位于app.js中,则可以将第2行重写为:

var server = exports.db = new mongodb.Server("localhost", 27017, {});

在需要访问实例的模块中,只需编写:

require('app').db

更常见的方法可能是将共享内容放在settings.js文件中,或者使用专用的数据库接口模块。

<强>更新

要访问已打开的客户端,您将以相同的方式公开客户端:

new mongodb.Db('test', server, {w: 1}).open(function (error, client) {
  exports.client = client;
  // ...
});