2

Mongojs は mongodb ネイティブ ライブラリのシン ラッパーですが、唯一の問題はエラーをリッスンできないことですか?

処理する必要がある主なエラーは、接続エラー、接続できなかった、または接続が失われたことです。ここに私がこれまでに試した例があります。

var mongojs = require('mongojs');

var db = mongojs.connect('reallyRandomStringShouldGiveError', ['sessions', 'unknown']);

// This does not work
db.on('error', function(err) {
        console.log('Catch ', err);
});

db.sessions.insert({ a: 1 });

db.unkknown.find({ a: 1}, function (err, result) {
        console.log(err, result);
});

そして、再びエラーを発生させるはずの「mongojs」ライブラリのコードmongojs source

var connect = function(config, collections) {
    var connectionString = parseConfig(config);

    var ondb = thunky(function(callback) {
        mongodb.Db.connect(connectionString, function(err, db) {
            if (err) return callback(err);
            that.client = db;
            db.on('error', function(err) {
                process.nextTick(function() {
                                    // Errors seems to be emitted again
                    that.emit('error', err);
                });
            });
            callback(null, db);
        });
    });
    var that = new Database(ondb);

    .....

    return that;
};

プロセス リスナーを追加することは、最適なオプションではありません。

process.on('uncaughtException', function(err) {
    console.log(err);
});
4

1 に答える 1