Mongoose Model.find ()зависает при отсутствии подключения к базе данных

Я просматриваю несколько сценариев ошибок, пытаясь понять, как с ними справиться.

В случае отсутствия подключения к базе данных вызов Mongoose Model.find(...)зависает. Ниже пример кода. Я бы предположил, что обратный вызов вызывается с объектом err, но это не так.

Как я могу предотвратить зависание вызова модели? Нужно ли мне вручную проверять readyStateкаждый раз, когда я обращаюсь к модели?

// app.js
// Let's use a non-existing host so connecting fails:
// (callback is invoked with err object)
mongoose.connect('mongodb://localhostXXX/blog', function(err){... });

BlogPost  = mongoose.model('BlogPost', BlogPostSchema);

// api.js
exports.list_posts = function(req, res) {

    // Ready state is '0' = disconnected (since we used a wrong hostname)   
    console.log('DB ready state: ' + BlogPost.db.readyState);

    // This will not invoke the callback:
    BlogPost.find(function(err, threads) {
        // Never called...
    });
 }
10
задан Mark 23 July 2012 в 08:29
поделиться