Я використовую мангуст у сценарії, який не повинен працювати постійно, і я стикаюся з тим, що здається дуже простим питанням, але я не можу знайти відповідь; просто кажучи, коли я здійснюю виклик до будь-якої мангустової функції, яка надсилає запити в mongodb, мій екземпляр nodejs ніколи не зупиняється, і мені доведеться вбивати його вручну за допомогою, скажімо, Ctrl + c або Program.exit ().
Код виглядає приблизно так:
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);
Я спробував додати дзвінки до mongoose.disconnect (), але ні, щоб результат. Крім цього, все працює добре (пошук, збереження, ...).
Це точно те саме питання, що і ця людина, на жаль, він не отримав жодної відповіді: https://groups.google.com/group/mongoose-orm/browse_thread/thread/c72cc1c51c76e661
Дякую
EDIT: прийняв відповідь нижче, оскільки це технічно правильно, але якщо хтось коли-небудь знову потрапить на цю проблему, здається, що мангуст та / або драйвер mongodb насправді не закриває з'єднання, коли ви запитуєте його, чи все ще запущені запити.
Він навіть не запам'ятовує виклик відключення, він не робить цього, як тільки запити закінчуються; він просто відкидає ваш дзвінок без винятку, кинутого або будь-якого подібного, і ніколи фактично не закриває з'єднання.
Отож, у вас це є: переконайтеся, що кожен запит був оброблений, перш ніж викликати disconnect (), якщо ви хочете, щоб він справді працював.