Mongoose断开/重新连接问题

时间:2015-07-21 06:30:17

标签: mongodb mongoose

我目前正在使用mongoose@4.0.4,每当我手动断开MongoDb时,mongoose disconnect / reconnect事件都没有被解决,每次MongoDb手动断开/启动时都会触发重新连接事件并且不会触发断开连接。我的问题是处理MongoDb连接和断开连接状态,以便每次向服务器发出请求时,我都会看到MongoDb连接/断开连接的状态并发送相应的响应(可能是500个代码),因为如果MongoDb不是,请求会在中间挂起连接的。 为了查看这是否是版本问题,我说明了版本3.8.x并转到4.0.4以查看事件被正确触发的位置。我能够从版本4.0.x捕获重新连接事件,但不能捕获断开连接事件。 基本上想知道我可以使用哪个版本正确触发连接/断开事件或处理问题的方法。

下面是代码句柄事件

var db = mongoose.connection;
var connected;
db.on('open', function (ref) {
    connected = true;
    console.log('open connection to mongo server.');
});

db.on('connected', function (ref) {
    global.mongo_conn=true;
    console.log('Connected connection to mongo server.');
});

db.on('disconnected', function (ref) {
    connected = false;
    console.log('disconnected connection.');
});
db.on('disconnect', function (err) {
    console.log('Error...disconnect', err);
});
db.on('connecting', function (ref) {
    connected = false;
    console.log('connecting.');
});

db.on('close', function (ref) {
    global.mongo_conn=false;
    console.log('close connection.');
    connect();
});

db.on('error', function (ref) {
    connected = false;
    console.log('Error connection.');
    //mongoose.disconnect();
    global.mongo_conn=false;
});

db.on('reconnected', function () {
    global.mongo_conn=true;
    console.log('MongoDB reconnected!');
});
db.on('reconnecting', function () {
    global.mongo_conn=true;
    console.log('reconnecting!');
});
function connect() {
    mongoose.connect(config.mongo.uri, opts);
}

connect();

1 个答案:

答案 0 :(得分:-1)

PreferenceManager.getDefaultSharedPreferences(context)
            .edit()
            .putString("null", authorizedHeader)
            .putString("null", userId) // so there is actually only one key 
            .apply();