私は継続的に実行するつもりのないスクリプトでmongooseを使用していますが、私は非常に単純な問題であるように見えますが、単純にmongoose関数への呼び出しを行い、mongodbにnodejsインスタンスが停止しないようにしたら、Ctrl + cまたはProgram.exit()で手動でkillする必要があります。完了したらmongooseの接続を正しく終了してください
コードはおおよそ次のようになります。
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);
I)は、(mongoose.disconnectへの呼び出しを追加しようとしたんが、何をもたらすと。それを除けば、すべてがうまくいく(見つける、保存する、...)。
これは悲しげに、彼はどんな答えを受け取っていない、この人と全く同じ問題です:https://groups.google.com/group/mongoose-orm/browse_thread/thread/c72cc1c51c76e661
おかげ
編集:それは技術的に正確であるとして、以下の答えを受け入れたが、誰もが今までにこれをヒットした場合mongooseおよび/またはmongodbドライバは、依然としてクエリが実行されているかどうかを尋ねるときに実際に接続を閉じることはないようです。
切断呼び出しをまったく覚えていなくても、クエリの実行が終了するとそれは実行されません。例外がスローされたり、並べ替えられたりすることなく呼び出しを破棄し、実際には接続を閉じることはありません。
これがあります:実際に動作させたい場合は、disconnect()を呼び出す前にすべてのクエリが処理されていることを確認してください。
モデルをインポートするだけでこれを行う方法はありますか?以下の回答はどちらも動作しません:\ – Antoine