Estou usando o mangusto em um script que não deve ser executado continuamente e estou enfrentando o que parece ser um problema muito simples, mas não consigo encontrar uma resposta; basta colocar uma vez que eu chamo uma função de mangusto que envia solicitações ao mongodb, minha instância do nodejs nunca para e eu tenho que matá-la manualmente com, por exemplo, Ctrl + c ou Program.exit ().
O código é mais ou menos assim:
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);
Tentei adicionar chamadas ao mongoose.disconnect (), mas não como resultado. Além disso, tudo funciona bem (encontrar, salvar, ...).
Esse é exatamente o mesmo problema que essa pessoa; infelizmente, ele não recebeu nenhuma resposta: https://groups.google.com/group/mongoose-orm/browse_thread/thread/c72cc1c51c76e661
obrigado
EDIT: aceitou a resposta abaixo, pois é tecnicamente correta, mas se alguém encontrar esse problema novamente, parece que o mongoose e / ou o driver mongodb não fecham a conexão quando você solicita se ainda houver consultas em execução.
Ele nem se lembra da chamada de desconexão, e não faz isso depois que as consultas são concluídas; apenas descarta sua ligação sem nenhuma exceção ou algo do tipo e nunca fecha a conexão.
Então está aí: certifique-se de que todas as consultas tenham sido processadas antes de chamar o métodoconnect () se você quiser que realmente funcione.