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_uncaught例外

ログファイルに記録するか、console.log()/dir() などを使用します。

于 2012-04-18T19:33:39.120 に答える