完成数据库工作后,我试图断开猫鼬连接,但似乎没有用
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/myDatabase');
var MyModel = mongoose.model('MyModel', MySchema);
//do something here
mongoose.disconnect();
第一次一切正常,但第二次运行代码时,我收到错误“尝试打开未关闭的连接”。我也试过 mongoose.connection.close(); 并得到相同的结果。
谁能帮我解决这个问题?
非常感谢!
加里
我想我想通了。
在我的代码中,我试图对我的模型和数据库做一些事情:
var 猫鼬 = 要求('猫鼬');
mongoose.connect('mongodb://localhost:27017/myDatabase');
var MyModel = mongoose.model('MyModel', MySchema);
MyModel.findOne({}, function () {...});
mongoose.disconnect();
看到问题了吗?由于 Nodejs 的非阻塞特性,在“findOne”完成之前就执行了“断开连接”,所以当然没有用!
解决方法是将断开连接放入回调函数中:
MyModel.findOne({}, function () {
...
mongoose.disconnect();
});