2012-09-29 47 views
12

estoy haciendo una sola conexión a través de MongoDB Mangosta en Node.js expreso aplicación:Mongoose.js crea múltiples conexiones a MongoDB de una llamada connect()

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

continuación defino esquema, seguido de los modelos, y por último el controlador que tira de todos los usuarios de la base de datos:

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

Estas conexiones de base de datos abierta durante el inicio de aplicación y permanecen abiertas durante la duración de la aplicación Node.js.

Lo que me molesta es por qué tengo 5 conexiones abiertas? Tan pronto como cierro la aplicación node.js, las 5 conexiones están cerradas. enter image description here

Nota relacionada: Para un servidor API REST es mejor tener conexión MongoDB siempre abierto. ¿O es mejor abrir/cerrar manualmente las conexiones por cada solicitud de usuario? d

Respuesta

39

Esto se debe a que Mongoose utiliza un grupo de 5 conexiones (por defecto) que se comparten en toda la aplicación. Para un mejor rendimiento, es mejor dejarlos abiertos.

Puede modificar el comportamiento predeterminado a través del parámetro options al mongoose.connect. Por ejemplo:

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

gracias. Me preguntaba lo mismo. – chovy

+0

Impresionante, gracias por esa explicación :-)! –

+0

Gracias por esta respuesta, me estaba volviendo loca tratando de descubrir por qué seguía abriendo 5 conexiones a la vez. – Benny

Cuestiones relacionadas