Estoy pasando por algunos escenarios de error, tratando de entender cómo manejarlos.Mongoose Model.find() se cuelga cuando no está conectado a la base de datos
En el caso donde no hay una conexión de base de datos, una llamada a Mongoose Model.find(...)
parece colgarse. Debajo del código de ejemplo. Hubiera supuesto que la devolución de llamada se invoca con un objeto err
, pero no lo es.
¿Cómo puedo evitar que cuelgue la llamada modelo? ¿Tengo que verificar manualmente el readyState
cada vez que accedo a un modelo?
// 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...
});
}
Muestra el código que implementa el método 'find' al que llamas' BlogPost'. – ebohlman
@ebohlman 'BlogPost' es un modelo de mangosta (actualicé el código). – Mark