Sto usando mangusta in uno script che non è pensato per funzionare continuamente, e sto affrontando quello che sembra essere un problema molto semplice, ma non riesco a trovare una risposta; semplicemente metto una volta che faccio una chiamata a qualsiasi funzione di mangusta che manda richieste a mongodb la mia istanza nodejs non si ferma mai e devo ucciderla manualmente con, ad esempio, Ctrl + c o Program.exit().Chiudi la connessione della mangusta quando hai finito
Il codice è più o meno in questo modo:
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);
Ho provato ad aggiungere le chiamate a mongoose.disconnect(), ma non ai risultati. A parte questo, tutto funziona bene (trovare, salvare, ...).
Questo è lo stesso problema esattamente come questa persona, purtroppo non ha ricevuto alcuna risposta: https://groups.google.com/group/mongoose-orm/browse_thread/thread/c72cc1c51c76e661
Grazie
EDIT: accettato la risposta qui sotto in quanto è tecnicamente corretto, ma se qualcuno mai colpito questo problema di nuovo, sembra che mangusta e/o il driver mongodb in realtà non chiudere la connessione quando lo si chiede se ci sono ancora query in esecuzione.
Non ricorda affatto la chiamata di disconnessione, non lo fa una volta terminata la ricerca; semplicemente scarta la chiamata senza eccezioni generate o simili e non chiude mai la connessione.
Quindi, ecco qua: assicurati che ogni query sia stata elaborata prima di chiamare disconnect() se vuoi che funzioni effettivamente.
C'è un modo per farlo solo dall'importazione di un modello? nessuna delle risposte seguenti funziona: \ – Antoine