Estoy usando mangosta en un script que no está destinado a ejecutarse continuamente, y me enfrento a lo que parece ser un problema muy simple, pero no puedo encontrar una respuesta; simplemente, 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 + co Program.exit ().
El código se ve 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);
Intenté agregar llamadas a mongoose.disconnect () pero no al resultado. Aparte de eso, todo funciona bien (encontrar, guardar, ...).
Este es exactamente el mismo problema que esta persona, lamentablemente no recibió ninguna respuesta: https://groups.google.com/group/mongoose-orm/browse_thread/thread/c72cc1c51c76e661
Gracias
EDITAR: aceptó la respuesta a continuación, ya que es técnicamente correcta, pero si alguien alguna vez vuelve a encontrar este problema, parece que la 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, no lo hace una vez que las consultas terminan de ejecutarse; simplemente descarta su llamada sin lanzar ninguna excepción ni nada por el estilo, y nunca cierra la conexión.
Así que ahí lo tiene: asegúrese de que cada consulta se haya procesado antes de llamar a desconectar () si desea que realmente funcione.