0

というサーバーファイルが 1 つありますserver.js

次のように、このファイル内に MongoDB 接続があります。

var Db=require('mongodb').Db;
var BSON=require('mongodb').BSONPure;
var Server=require('mongodb').Server;

client=new Db('database' , new Server('127.0.0.1',27017),{safe:false});

client.open(function(err,pClient)
{
    client.collection('userdetails',function(err,collection)
    {
        Ucollection=collection;
    });
});

という名前の別のファイルがありますserver2.js。このファイルでは、ユーザー名が存在するかどうかを確認する必要がありますUcollection(これはコレクション名です)。

に MongoDB 接続を与えるにはどうすればよいserver2.jsですか? このコレクションを で使用するにはどうすればよいserver2.jsですか?

4

4 に答える 4

1

これを行うためのよりクリーンな方法は、データベース構成を別のファイルに分離することだと思います。このような

database-config.js で

var Db=require('mongodb').Db;
var BSON=require('mongodb').BSONPure;
var Server=require('mongodb').Server;

client=new Db('database' , new Server('127.0.0.1',27017),{safe:false});

module.exports.connectDatabase = function(callback){
   client.open(function(err,pClient)
   {
       if(err){
         console.log(err);
         process.exit(1);
       }

       module.exports.userCollection = pClient.collection('userdetails');
       callback();
   });
}

server.js で

var  database = require('./database-config')
database.connectDatabase(function() {
   //here you can reuse collection like this
   database.userCollection

}

server2.jsで

var  database = require('./database-config')
//here you can reuse collection like this
   database.userCollection

server.js は実際にサーバーを開始するメイン ファイルであると想定しているため、アプリケーションを実行するとデータベースに接続され、アプリケーションのどこでも使用できる必要なコレクションがロードされます。これは、再利用するためのベスト プラクティスと見なされますコレクション。混乱がある場合はお知らせください

于 2013-03-20T06:28:11.090 に答える
1

あなたはこのようなことをすることができます

server.js で:

var Db=require('mongodb').Db;
var BSON=require('mongodb').BSONPure;
var Server=require('mongodb').Server;

global.mongoHelper = {};
global.mongoHelper.db = Db;
global.mongoHelper.bson = BSON;
global.mongoHelper.server = Server;


client=new Db('database' , new Server('127.0.0.1',27017),{safe:false});

client.open(function(err,pClient)
{
    client.collection('userdetails',function(err,collection)
    {
        Ucollection=collection;
    });
});

server2.jsで

client=new global.mongoHelper.db('database' , new global.mongoHelper.server('127.0.0.1',27017),{safe:false});

client.open(function(err,pClient)
{
    client.collection('userdetails',function(err,collection)
    {
        Ucollection=collection;
    });
});
于 2013-03-20T05:51:57.683 に答える
0

コードをモジュール化するという概念全体について、あなたは少し誤解しています。あなたのタスクでは、2 つ目の server.js を作成しないでください。別のモジュールに verifyUser と言って、server.js ファイルでそれを要求することができます。mongodb接続後に必要になる場合があります(必要になる場合があります)。

于 2013-03-20T05:41:38.820 に答える