1
我正在测试Mongoose错误处理的情况,其中db命令(保存,更新等)无法执行时,数据库连接丢失之前或执行期间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的过程中,则继续执行代码,没有任何反应和猫鼬似乎静默失败。回调是永远不会被调用,并没有什么记录在这里或定义为连接“错误”事件监听器遵循app.js:
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。
由于提前,
弗雷德
您是否将[安全](http://mongoosejs.com/docs/guide.html#safe)选项传递给您的连接或模式?只是检查,因为默认应该是'真的' –
我没有明确地设置它,所以它使用默认值。 – fshort