在带有MongoDB的NodeJS中,我有时会收到一个我无法追踪的错误,但显然会导致我的项目出现问题。它也偶尔发生。
以下是我使用mongo调用的示例:
savePlayer: (player) ->
savePlayer = @buildPlayerSaveObject player
savePlayer.lastLogin = new Date()
@db.update { identifier: player.identifier }, savePlayer, {upsert: true}, (e) =>
@game.errorHandler.captureException e if e
在几乎所有的回调中,我只是试图获得一些东西,但是这个错误似乎来自MongoDB驱动程序本身。
我发布了一张机票here,但没有得到回应。在Google上,this实际上是此错误的唯一其他结果,但OP解决方案并不一定适用于我。
我有什么办法可以进一步诊断这个错误吗?
答案 0 :(得分:0)
遗憾的是,MongoDB团队对这个问题发出了很多无线电沉默,但我终于发现了这个错误发生的原因:我的一个mongo回调中出现了一个问题,那可能是(可能)扔了一个例外。似乎Mongo抓住了这个错误并把这个非描述性的错误扔回了我身上。对于记录,错误的堆栈跟踪(在问题中的链接中发布)如下:
MongoError: Incorrect arguments
at Object.toError (/home/admin/idlebot/src/modules/idle/node_modules/mongodb/lib/mongodb/utils.js:114:11)
at Server.Base._callHandler (/home/admin/idlebot/src/modules/idle/node_modules/mongodb/lib/mongodb/connection/base.js:455:65)
at /home/admin/idlebot/src/modules/idle/node_modules/mongodb/lib/mongodb/connection/server.js:481:18
at [object Object].MongoReply.parseBody (/home/admin/idlebot/src/modules/idle/node_modules/mongodb/lib/mongodb/responses/mongo_reply.js:68:5)
at [object Object].<anonymous> (/home/admin/idlebot/src/modules/idle/node_modules/mongodb/lib/mongodb/connection/server.js:439:20)
at [object Object].emit (events.js:95:17)
at [object Object].<anonymous> (/home/admin/idlebot/src/modules/idle/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:201:13)
at [object Object].emit (events.js:98:17)
at Socket.<anonymous> (/home/admin/idlebot/src/modules/idle/node_modules/mongodb/lib/mongodb/connection/connection.js:440:22)
at Socket.emit (events.js:95:17)
at Socket.<anonymous> (_stream_readable.js:764:14)
at Socket.emit (events.js:92:17)
at emitReadable_ (_stream_readable.js:426:10)
at emitReadable (_stream_readable.js:422:5)
at readableAddChunk (_stream_readable.js:165:9)
at Socket.Readable.push (_stream_readable.js:127:10)
at TCP.onread (net.js:528:21)
所以,如果你得到这个,并希望尽可能少花时间调试,请检查你所有的Mongo回调!