Estoy usando mangosta en un script que no debe ejecutarse continuamente, y estoy enfrentando lo que parece ser un problema muy simple pero no puedo encontrar una respuesta; simplemente pongo una vez que hago una llamada a cualquier función de mangosta que envía solicitudes a mongodb. Mi instancia de nodejs nunca se detiene y tengo que matarla manualmente con, por ejemplo, Ctrl + c o Program.exit().Correctamente cierre la conexión de mangosta una vez que haya terminado
El código es más o menos así:
var mongoose = require('mongoose');
// if my program ends after this line, it shuts down as expected, my guess is that the connection is not really done here but only on the first real request ?
mongoose.connect('mongodb://localhost:27017/somedb');
// define some models
// if I include this line for example, node never stop afterwards
var MyModel = mongoose.model('MyModel', MySchema);
He intentado añadir llamadas a mongoose.disconnect(), pero no a consecuencia de ello. Aparte de eso, todo funciona bien (encontrar, guardar, ...).
Este es el problema exactamente el mismo como esta persona, por desgracia, no recibió ninguna respuesta: https://groups.google.com/group/mongoose-orm/browse_thread/thread/c72cc1c51c76e661
Gracias
EDIT: aceptado la respuesta a continuación, ya que es técnicamente correcto, pero si alguien alguna vez ir a este problema de nuevo, parece que mangosta y/o el controlador mongodb en realidad no cierra la conexión cuando se le pregunta si todavía hay consultas en ejecución.
Ni siquiera recuerda la llamada de desconexión en absoluto, no lo hace una vez que las consultas han terminado de ejecutarse; simplemente descarta su llamada sin excepción ni nada por el estilo, y nunca cierra la conexión.
Así que ahí lo tienes: asegúrate de que cada consulta haya sido procesada antes de llamar a desconectar() si quieres que funcione realmente.
¿Hay alguna manera de hacer esto solo importando un modelo? ninguna de las respuestas siguientes funciona: \ – Antoine