我使用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)
有关为何可能破坏的任何想法?或者如何获得更深入的错误报告? 谢谢你们!
答案 0 :(得分:0)
除非你知道自己在做什么,否则永远不要抛出node.js函数调用。抛出内部没有“堆叠”,因为它发生在toArray中。这导致异常成为未处理的例外。
陷阱的唯一方法是使用
http://nodejs.org/api/process.html#process_event_uncaughtexception
将其记录到您的日志文件或使用console.log()/ dir()或类似的东西。