javascript - 为什么 MongoError: E11000 异常消息没有通知我它在哪里出现?
问题描述
我最近得到了这个 mongo 异常,当我打印我的错误对象时,它没有提到我的代码中哪里出现了异常。
{ MongoError: E11000 duplicate key error collection: test.users index: email_1 dup key: { : "test@gmail.com" }
[0] at Function.create (C:\proj\node_modules\mongodb-core\lib\error.js:43:12)
[0] at toError (C:\proj\node_modules\mongodb\lib\utils.js:149:22)
[0] at coll.s.topology.insert (C:\proj\node_modules\mongodb\lib\operations\collection_ops.js:859:39)
[0] at handler (C:\proj\node_modules\mongodb-core\lib\topologies\replset.js:1155:22)
[0] at C:\proj\node_modules\mongodb-core\lib\connection\pool.js:397:18
[0] at process._tickCallback (internal/process/next_tick.js:61:11)
[0] driver: true,
[0] name: 'MongoError',
[0] index: 0,
[0] code: 11000,
[0] errmsg:
[0] 'E11000 duplicate key error collection: test.users index: email_1 dup key: { : "test@gmail.com" }',
[0] [Symbol(mongoErrorContextSymbol)]: {} }
如您所见,它仅在 mongodb 模块中的哪些文件中提到它已经上升,但现在我自己的项目代码中的哪些行启动了整个事件链。也许是我使用的一些 .save() 函数?为什么它不显示这条线,是否可以在任何地方看到它?这对我的调试工作很有帮助
解决方案
因为 MongoDB 不是您的应用程序的一部分,它是您添加的模块和您使用的驱动程序,直接传递 MongoDB 错误。
通常,程序员处理驱动程序返回的错误对象,如下所示:
UsersModel.save(function(err) {
if (err) {
// Evaluate the error over here
}
})
请注意,上面的代码表示使用 Mongoose 模块保存新记录。
祝你好运..
推荐阅读
- html - 如果 Angular 7 中的条件匹配,则启用和禁用按钮并更改模式中的状态
- scala - 如何正确使用 Chisel3.util 中的这个内置 shiftRegister?
- r - R shinydashboardPlus - 让漂亮的开关再次漂亮
- r - R Programming 中的 extra = "merge" 是什么意思?
- flutter - 如何使用flutter webRTC在agoraIO上同时处理视频通话
- python - 如何在python 3中找到笛卡尔元素的总和?
- css - 打印 Bootstrap 4 网页时出现字体问题
- java - 我无法使用 Spring Boot 重定向
- java - 如何在 Java 中转换儒略日期(序数日期)
- abap - 删除 cl_gui_alv_grid 的 ALV Scrren 中的执行按钮 (ONLI)