Gar*_*ary 8 mongoose mongodb node.js
我在完成数据库工作后试图断开mongoose连接,但似乎没有用
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/myDatabase');
var MyModel = mongoose.model('MyModel', MySchema);
//do something here
mongoose.disconnect();
Run Code Online (Sandbox Code Playgroud)
第一次一切正常,但第二次运行代码时,我收到错误"试图打开未关闭的连接".我也试过mongoose.connection.close(); 并得到了相同的结果.
有人可以帮我这个吗?
非常感谢你!
加里
我想我想出来了.
在我的代码中,我试图用我的模型与数据库做一些事情:
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/myDatabase');
var MyModel = mongoose.model('MyModel', MySchema);
MyModel.findOne({}, function () {...});
mongoose.disconnect();
Run Code Online (Sandbox Code Playgroud)
看到问题?由于Nodejs的非阻塞功能,"断开"在"findOne"完成之前执行,所以当然它不起作用!
解决方案是将断开连接到回调函数:
MyModel.findOne({}, function () {
...
mongoose.disconnect();
});
Run Code Online (Sandbox Code Playgroud)
小智 6
试试这样:
var db = mongoose.connect('mongodb://localhost:27017/myDatabase');
MyModel.findOne({}, function () {
// todo
db.disconnect();
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5919 次 |
| 最近记录: |