1

私のアプリケーションでは、mongoDBでnode.jsを使用しています。以下は私のサンプルコードです。

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インスタンスが必要です。これを行うにはどうすればよいですか?

4

1 に答える 1

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;
  // ...
});   
于 2013-03-18T08:24:31.960 に答える