gpt4 book ai didi

node.js - 当 db 命令无法执行时 Mongoose 不报告错误

转载 作者:太空宇宙 更新时间:2023-11-04 00:37:06 25 4
gpt4 key购买 nike

我正在针对以下场景测试 Mongoose 错误处理:当与数据库的连接在 db 命令执行之前或期间断开时,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 似乎会默默地失败。回调永远不会被调用,并且此处或连接“错误”事件监听器中不会记录任何内容,在 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。

提前致谢,

弗雷德

最佳答案

您的回调不会被调用,因为如果调用 save 时连接未打开,则该操作将排队,直到 Mongoose 能够重新建立连接。

查看文档 here .

关于node.js - 当 db 命令无法执行时 Mongoose 不报告错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38534789/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com