2013-07-17 3 views
0

MongoDB에 connecto 노드를위한 모듈을 만들고 싶습니다. 새롭고 더 나은 접근 방법은 MongoClient를 사용하는 것이지만, 데이터베이스에서 동시 작업을 수행하는 방법을 알 수는 없습니다. 내가 달성하고자하는 목표는 다음과 같이 추상적 인 데이터베이스에 기능을하는 것입니다 : 워드 프로세서에 따르면Node.js를 사용하는 MongoClient 다중 연결

exports.insertItem(item){ 

    //Whatever 

} 

, 나는 데이터베이스에 이런 식으로 연결 하죠 :

MongoClient.connect("mongodb://localhost:27017/integration_test", function(err, db) { 

    //Do stuff on the db object 

}); 

문제는 DB 객체를 노드에서 함수를 내보내는 데 사용할 수있는 범위에 없다면 어떻게 사용해야합니까? DB를 다루는 모든 함수에 대해 MongoClient.connect()를 작성해야합니까?

+1

가능한 중복 http://stackoverflow.com/questions/17647779/how-to-reuse-mongodb 사용 -connection-in-node-js) – moka

답변

0

당신은 하나의 DB 연결을 만들고 모듈의 일반적인 패턴이

export.myinsert = function(db) { 
    return function(whatever) { 
    } 
} 

하고 다음

require('mymodule')(db) 

예제를 보도록 할

모든 곳에서 재사용

https://github.com/christkv/tic-tac-toe-steps

0

다음은 전체적인 개념을 보여주기 위해 사용하는 코드의 일부입니다. 희망적으로이 기능을 사용하면 시작하는 데 도움이되기를 바랍니다.

var mongodb = require('mongodb'), 
    MongoClient = mongodb.MongoClient; 

var db; 

// Initialize our connection to MongoDB once 
MongoClient.connect("mongodb://localhost:27017/integration_test", function(err, database){ 
    if(err){ 
     console.log('MongoClient connect failed'); 
     console.log(err); 
    } 

    db = database; 
}); 

exports.Connect = function (callback) { 
    callback(db); 
}; 

exports.MongoClient = MongoClient; 
exports.ObjectID = mongodb.ObjectID; 

var Connect = require('myMongo').Connect; 
Connect(function(db){ 
    // then use your db.collection() stuff here 
}) 
([Node.js를에서 MongoDB의 연결을 다시 사용하는 방법]의