sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Cuál es la forma correcta de manejar las conexiones de mongoose con express.js?

Si ya se conectó a la base de datos, once el evento no se disparará de nuevo. La base de datos ya estaba conectada para todo el proceso de NodeJs cuando estaba conectada globalmente (fuera de la función).

La llamada a mongoose.connect('mongodb://localhost/test'); hace la conexión y la abre.

Entonces, en lugar de abrirlo en cada llamada de función (lo que sería una forma ineficiente de interactuar con MongoDB) connect inmediatamente cuando se inicie la aplicación NodeJs, y considere que habrá un período en el que la conexión puede no estar disponible (ya que es asíncrona), o no inicie la aplicación (listen ) hasta que se complete la conexión (o con un tiempo de espera). Con Mongoose, hasta que se realiza la conexión, todos los comandos se almacenan en el búfer (pero puede que ese no sea el comportamiento que desea). Puedes usar el open evento si desea saber cuándo se completa la conexión.

La conexión se encuentra aquí:mongoose.connection si usa el connect función para crear la conexión.

Una vez que se abre la conexión, puede usarla desde su popSingleData función sin usar once evento y devolución de llamada. Hay un grupo de conexiones mantenido automáticamente.

Para obtener más información sobre las conexiones, lea aquí .