2013-03-20 76 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.'); 
    } 

    }); 
相關問題