Sto passando alcuni scenari di errore, cercando di capire come gestirli.Mongoose Model.find() si blocca quando non è connesso al database
Nel caso in cui non vi sia alcuna connessione al database, una chiamata di Mongoose Model.find(...)
sembra bloccarsi. Sotto il codice di esempio. Avrei assunto che la richiamata sia invocata con un oggetto err
, ma non lo è.
Come si può impedire il blocco della chiamata del modello? Devo controllare manualmente il readyState
ogni volta che accedo a un modello?
// 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...
});
}
Mostra il codice che implementa il metodo 'find' su cui si sta chiamando' BlogPost'. – ebohlman
@ebohlman 'BlogPost' è un modello di mangusta (ho aggiornato il codice). – Mark