在Expressjs中会导致此错误的原因是什么?

时间:2012-04-04 15:45:41

标签: node.js mongodb express

我使用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)

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

1 个答案:

答案 0 :(得分:0)

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

陷阱的唯一方法是使用

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

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