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í .