データベースの作業が終了した後、マングース接続を切断しようとしましたが、機能しなかったようです
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/myDatabase');
var MyModel = mongoose.model('MyModel', MySchema);
//do something here
mongoose.disconnect();
初回はすべて正常に動作しますが、コードを2回実行すると、「閉じられていない接続を開こうとしています」というエラーが表示されます。また、mongoose.connection.close();を試しました。同じ結果が得られました。
誰かがこれを手伝ってくれませんか?
どうもありがとうございます!
ゲイリー
私はこれを理解したと思います。
私のコードでは、データベースを使用してモデルで何かをしようとしていました。
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/myDatabase');
var MyModel = mongoose.model('MyModel', MySchema);
MyModel.findOne({}, function () {...});
mongoose.disconnect();
問題がわかりますか?Nodejsの非ブロッキング機能により、「findOne」が完了する前に「disconnect」が実行されたため、もちろん機能しませんでした。
解決策は、切断をコールバック関数に入れることです。
MyModel.findOne({}, function () {
...
mongoose.disconnect();
});