我正在测试当数据库连接在执行db命令之前或执行期间丢弃时,db命令(保存,更新等)无法执行的情况下的Mongoose错误处理。在此示例代码中:
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似乎无声地失败。永远不会调用回调,也不会在此处或在app.js中定义如下的连接'error'事件侦听器中记录任何内容:
var db = mongoose.connection;
db.on('error', function(e) {
logger.error('connection error:' + e);
});
我本来期望一些错误消息告诉我无法执行保存。关于我做错的任何建议?
我使用的是MongoDB 3.2,mongoose 4.5.1,表达4.14和节点4.2.1。
提前致谢,
佛瑞德