0

ノードからmongodbに接続するためにmongoskinを使用していますが、mongodbが使用できない場合に接続すると例外がスローされ、これを処理する方法が見つからないようです。

私の接続とクエリコードは次のようになります...

var mongo = require('mongoskin');
var conn = 'localhost:27017/dbname'; 

mongo.db(conn).collection('collection').find({ date: { $gte: now } }, { sort: [['date', 1]]}).toArray(function(err, result) {
                if (err) throw err;
                callback(null, result)
            });

これにどう対処すればいいですか?

ありがとう、サイモン

4

1 に答える 1

2

throw err;ここでは役に立ちません-非同期関数としてイベントループによって呼び出されているため、エラーをキャッチするための外部スコープはありません。node.jsの規則では、最初の引数にエラー(または、エラーがない場合はnull)が含まれ、2番目の引数にコマンドの結果が含まれるコールバックを起動します。

だからあなたはおそらくただ欲しい:

callback(err, result)

または、コールバックを直接渡すこともできます。コールバックのコードで、errがnullかどうかを確認し、そこで条件を処理します。

于 2012-04-27T15:14:45.103 に答える