2012-09-29 36 views
12

我提出來的MongoDB的單一連接通過貓鼬在Node.js的快速應用程序:Mongoose.js建立了一個從連接到MongoDB的多個連接()調用

var express = require('express'); 
var mongoose = require('mongoose'); 
mongoose.connect('localhost', 'test'); 

然後我定義模式,其次是模特, ,最後拉動所有用戶數據庫控制器:在應用過程中

app.get('/users', function (req, res) { 
    return User.find(function (err, users) { 
    if (!err) { 
     return res.send(users); 
    } 
    }); 
}); 

這些DB連接開放開始,他們一直打開Node.js的應用程序的持續時間。

困擾我的是爲什麼我打開5個連接?只要關閉node.js應用程序,所有5個連接都將關閉。 enter image description here

相關說明:對於REST API服務器是最好有MongoDB的連接始終打開。或者更好地手動打開/關閉每個用戶請求的連接? d

回答

39

這是因爲Mongoose使用5個連接池(默認情況下)在整個應用程序中共享。爲了獲得最佳性能,最好讓它們打開。

您可以通過options參數將默認行爲更改爲mongoose.connect。例如:

mongoose.connect('localhost', 'test', { server: { poolSize: 3 }}); // Use 3 connections 
+0

謝謝。我想知道同樣的事情。 – chovy

+0

太棒了,謝謝你的解釋:-)! –

+0

感謝您的回答,我瘋了,試圖找出爲什麼它一次打開5個連接。 – Benny