2013-03-20 28 views
0

我有一个服务器文件server.js如何在另一个文件中使用MongoDB集合

我有这个文件里面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中使用此收藏夹?

回答

0

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

+0

我可以” t understand.plz让我知道如何将这个集合名称用于其他文件。 – silvesterprabu 2013-03-20 05:51:24

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; 
    }); 
}); 
+0

就像那样,我想你甚至可以重用这个集合! – 2013-03-20 05:52:56

+0

非常感谢你 – silvesterprabu 2013-03-20 06:01:05

+0

我在哪里给accept.i不知道如何给我。再次我有一个疑问,我可以使用该编码到更多的文件或不? – silvesterprabu 2013-03-20 06:25:18

1

我认为这样做是更清洁的方式将您的数据库配置分离为单独文件。像数据库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是你的主要文件,它实际上启动服务器,所以当你运行你的应用程序时,它连接到数据库并加载需要的集合,你可以在你的应用程序的任何地方使用,就像我这样做被认为是最佳实践,使用集合。让我知道如果有任何混淆

0

server.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.you可以查询像下面

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

    }); 
相关问题