我正在经历一些错误情况,试图了解如何处理这些情况。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...
});
}
显示实现您在'BlogPost'上调用的'find'方法的代码。 – ebohlman 2012-07-23 08:23:28
@ebohlman'BlogPost'是一个猫鼬模型(我更新了代码)。 – Mark 2012-07-23 08:30:23