2013-03-20 5 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

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

+0

, где бы я дал accept.i, не знаю, как дать.лет, я знаю это. снова у меня есть одно сомнение, могу ли я использовать эту кодировку для большего количества файлов или нет? – silvesterprabu

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.'); 
    } 

    }); 
Смежные вопросы