2012-09-29 37 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