在用 node 的 mongoose 模块操作 mongodb 数据库的时候,本来正常返回数据,但是有时候会返回空白页,控制台里报错:

Topology was destroyed

我的数据库连接代码如下:

var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
var db = mongoose.connection;

网上百度下,没什么合适的解释,大概理解一个意思,就是长时间没有请求,数据库断开了。
我又去找了 mongoose 重连数据库的方法,比较合理的是设置一个连接池,并自动重新连接,方法如下:

先定义一个 options 对象,如下:

var options = {  
    server: {
        auto_reconnect: true,
        poolSize: 10
    }
};

poolSize是连接池最多可连接的数量,auto_reconnect是自动重新连接,设置为 true, 然后在连接数据库的时候将 options 对象当作参数传入:

mongoose.connect('mongodb://localhost/test',options);

这样就好了,问题解决!

本作品 保留所有权利 。未获得许可人许可前,不允许他人复制、发行、展览和表演作品。不允许他人基于该作品创作演绎作品 。

时光 · 2017年10月09日

您好,我也遇到同样的问题,不过没能解决我的问题。方便联系一下吗?

回复

0

是无效吗?

杨成功 作者 · 2017年10月09日
载入中...
杨成功 杨成功

728 声望

发布于专栏

杨成功的全栈之路

决定花功夫做这件事情,那么有几个原则: 1. 绝对拒绝抄袭文章的智障行为,开这个专栏一方面记录自己的经验,一方面和其他作者互相参考共同进步。所以这里的每篇文章,都会坚持原创! 2. 因为记录的是自己的经验和感悟,所以难免会有不合理的地方,非常欢迎大神来喷!但是这里的每篇文章我都会修改维护,随着经验的增长,文章质量也会上去的

7 人关注