0

我正在使用 expressjs 和 mongoskin 连接到数据库,并且在我的 mongskin 调用中引发 expressjs 错误时遇到问题。我无法追踪问题,因为错误太笼统了。

我的代码:

db.collection('users').find(data, {limit:1}).toArray(function(err, result) {
    if(result) throw new noData('No results found');        
});    

错误:

node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick
              ^
Error
    at /home/jmoney/workspace/blog/app.js:238:15
    at /home/jmoney/workspace/blog/node_modules/mongoskin/node_modules/mongodb/lib/mongodb/cursor.js:129:9
    at /home/jmoney/workspace/blog/node_modules/mongoskin/node_modules/mongodb/lib/mongodb/cursor.js:171:11
    at /home/jmoney/workspace/blog/node_modules/mongoskin/node_modules/mongodb/lib/mongodb/cursor.js:452:35
    at Cursor.close (/home/jmoney/workspace/blog/node_modules/mongoskin/node_modules/mongodb/lib/mongodb/cursor.js:660:5)
    at Cursor.nextObject (/home/jmoney/workspace/blog/node_modules/mongoskin/node_modules/mongodb/lib/mongodb/cursor.js:452:17)
    at [object Object].<anonymous> (/home/jmoney/workspace/blog/node_modules/mongoskin/node_modules/mongodb/lib/mongodb/cursor.js:440:12)
    at [object Object].g (events.js:156:14)
    at [object Object].emit (events.js:88:20)
    at Db._callHandler (/home/jmoney/workspace/blog/node_modules/mongoskin/node_modules/mongodb/lib/mongodb/db.js:1274:25)

关于为什么这可能会破坏的任何想法?或者如何获得更深入的错误报告?多谢你们!

4

1 回答 1

0

除非您知道自己在做什么,否则永远不要抛出 node.js 函数调用。没有“堆栈”可以展开,因为它发生在 toArray 中。这导致异常成为未处理的异常。

唯一的方法是使用

http://nodejs.org/api/process.html#process_event_uncaughtexception

将其记录到您的日志文件或使用 console.log()/dir() 或类似的东西。

于 2012-04-18T19:33:39.120 回答