Я использую mongoose в script, который не предназначен для непрерывного запуска, и я сталкиваюсь с тем, что кажется очень простой проблемой, но я не могу найти ответ; просто поставьте один раз, когда я делаю вызов любой функции mongoose, которая отправляет запросы 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: он принял ответ ниже, поскольку это технически правильно, но если кто-либо снова ударит по этой проблеме, кажется, что mongoose и/или драйвер mongodb фактически не закрывают соединение, когда вы спрашиваете его, есть ли еще запросы работает.
Он даже не помнит об отключении вызова вообще, он не делает этого, как только запросы завершены; он просто отбрасывает ваш вызов без каких-либо исключений или что-то в этом роде и никогда не закрывает соединение.
Итак, у вас есть это: убедитесь, что каждый запрос был обработан до вызова функции disconnect(), если вы хотите, чтобы он действительно работал.