0

我有一个服务器文件,即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

服务器.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});

client.open(function(err,pClient)
{

     exports.Ucollection=pClient;
  });
});

server2.js

  var mongodb = require('mongodb');
  var mainApp=require('./server');
  var collectionObj=mainApp.Ucollection;
  var collection = new mongodb.Collection(collectionObj, 'userdetails');

使用这个集合。你可以像下面这样查询

  collection.insert(userInfo,{safe:true},function(err, objects) {
    if(!err){
       console.log('Data inserted successfully.');
     }

  });
于 2013-05-23T07:46:53.853 回答
0

好吧,您对模块化代码的整个概念有点误解。对于您的任务,您不应创建第二个 server.js。你可以让另一个模块说,verifyUser 并在你的 server.js 文件中要求它。在您的 mongodb 连接之后,您可能需要它(可能是)。

于 2013-03-20T05:41:38.820 回答