2013-06-18 3 views
0

사용자가 내 웹 사이트에서 연결하는 경로에 따라 mongo 데이터베이스에서 다양한 작업을 수행 할 수있는 방법을 찾고있었습니다. 그래서 www.mysite.com/data에 html-post를하면 mongo DB에 정보가 추가되고 동일한 URL에서 html-get을하면 같은 데이터베이스에서 데이터를 얻을 수 있습니다. 나는 그것을 해결할 수 있었지만 매번 웹 사이트에서 내 서버를 켜기 위해 mongo 데이터베이스에서 5 개의 연결을 등록했습니다. 왜 이래서 나쁜거야?Node.js가 MongoDB에 5 번 연결

내 코드 :

내가 mongo.js에서이 코드를들이받은 해요 :

var mongodb = require('mongodb'); 

module.exports.init = function (callback) { 
    var server = new mongodb.Server("127.0.0.1", 27017, {}); 
    new mongodb.Db('test', server, {w: 1}).open(function (error, client) { 
    //export the client and maybe some collections as a shortcut 
    module.exports.client = client; 
    module.exports.myCollection = new mongodb.Collection(client, 'myCollection'); 
    callback(error); 
    }); 
}; 

내가 모든 것을 실행 (app.js) 초기화 :

/express set-up/ 
var mongo = require('./mongo.js'); 
/.../ 
mongo.init(function (error) { 
    if (error) 
     throw error; 

    app.listen(3000, function(){ 
    console.log("Express server listening on port %d in %s mode",3000, 
      app.settings.env); 
    }); 
}); 

과, 예를 들어 게시물은 다음과 같습니다 (여전히 app.js).

app.post('/App', function(req, res) { 
    users = users.concat(req.body); 
    res.redirect('/App');   
//Add user to MongoDB 
    mongo.myCollection.insert({name: req.body.name, car: req.body.car, website: req.body.website, phone: req.body.phone}, {safe:true}, function(err, objects) { 
    if (err) 
     console.warn(err.message); 
    }); 

내 리디렉션이 제대로 작동하지 않는지 확실히 알고 싶습니다.하지만 다른 문제입니다.

왜 서버를 시작할 때마다 5가 연결되는지 Anny 제안?

+0

[MongoDB : 단일 db 핸들러에 대한 5 개의 열린 연결] 가능한 복제본 (http://stackoverflow.com/questions/14593814/mongodb-5-open-connections-for-a-single-db-handler) – WiredPrairie

답변

2

5 개의 연결은 기본 poolSize (5)이기 때문에 연결됩니다. server options docs에 설명 된대로 조정할 수 있습니다. 기본값도 언급되어 있습니다.

+0

흠, 그것을 기억하는 것은 일종의 불이행이었습니다. 수영장에 대해 많이 알지 못하면 그때는 괜찮습니다. 하나의 서버가 풀에 5 개의 연결을 생성합니까? – user2288749

+0

네, 원하면 원하면 줄일 수 있지만 서버를 더 많이 사용하면 더 많은 연결이 필요할 것입니다. –

관련 문제