Я просматриваю несколько сценариев ошибок, пытаясь понять, как с ними справиться.
В случае отсутствия подключения к базе данных вызов 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...
});
}