2012-09-14 4 views
3

나는 REST API를 제공하는 익스프레스 앱을 개발 중이며 mongosb를 통해 mongodb를 사용합니다. db acess에서 라우팅을 분할하는 레이어가 필요했습니다.다중 모듈에 의한 mongodb/mongoskin 액세스의 효율성?

var mongo = require('mongoskin'), 
db = mongo.db('localhost:27017/profiler'), 
profs = db.collection('profiles'); 

exports.examplefunction = function (info, cb) { 
    //code that acess the profs collection and do the query 
} 

나중에이 모듈은 라우팅 파일이 필요합니다 : 나는 모듈 파일, 예를 들어 모델/profiles.js을 작성하여 데이터베이스 다리를 생성하는 예를 보았다.

제 질문은 : 각 컬렉션에 대해 하나의 모듈을 만드는 데이 aproach를 사용하면 효율적입니까? mongo에서 여러 번 (불필요한) 연결하고 연결을 끊는 문제가 있습니까?

각 모듈의 db 변수를 각 컬렉션을 처리하는 다른 변수로 내보내는 것이 뻔한 문제를 해결할 수 있을지 모르겠지만 확실하지 않습니다.

답변

0

단일 연결을 사용하고 공유 db 인스턴스에서 전달되는 모듈을 생성하십시오. 각 모듈에 대해 별도의 DB 풀을 설정하지 않아도됩니다. 하나는 모듈을 클래스로 생성하는 것입니다.

exports.build = function(db) { 
return new MyClass(db); 
} 

var MyClass = function(db) { 
    this.db = db; 
} 

MyClass.doQuery = function() { 
} 
+0

내가하고있는 한 파일에 var mongo = require ('mongoskin'); exports.db = mongo.db ('localhost : 27017/profiler'); 다른 모듈의 – ojon

+0

: var db = require ('../ ds/config.js') .db; – ojon

+0

config.js가 첫 번째 파일입니까, 동일한 효과가 있습니까? 노드가 여러 파일에서 동일한 요구를 처리하는 방법을 잘 모르겠습니다. – ojon