当db命令不能执行时,Mongoose不报告错误

我正在testing的Mongooseerror handling的情况下db命令(保存,更新等)不能执行连接到数据库的连接之前,或执行数据库命令执行期间。 在这个示例代码中:

var myModel = new MyModel(data); myModel.save(function (err, newDoc, numAffected) { if (err || numAffected === 0) { logger.error('Error inserting message: ' + err); } logger.info('Message inserted'); }) 

如果我在myModel.save()行上放置一个断点,杀死mongod进程,然后继续执行代码,没有任何反应,mongoose似乎无声无息地失败。 callback从不被调用,并且在这里或者在app.js中定义如下的连接“错误”事件监听器中没有任何logging:

 var db = mongoose.connection; db.on('error', function(e) { logger.error('connection error:' + e); }); 

我会期望一些错误消息告诉我保存不能执行。 任何意见,我在做什么错了?

我使用的是MongoDB 3.2,mongoose 4.5.1,express 4.14和node 4.2.1。

提前致谢,

弗雷德

你的callback没有被调用,因为如果连接在调用save时候没有打开,那么这个操作是排队的,直到Mongoose能够重新build立连接。

在这里看到文档。