0

Node.js(monogdb、express、およびその他のモジュール)の操作データベース接続用のマングースメソッドがあるかどうか疑問に思っています.接続を開いた場合のようvar db = mongoose.connect('mongo://localhost/members');db.on('close', function(){ /*do stuffs here*/}).

基本的に、以下の関数は、データベースからユーザー リストを取得し、データベース接続が閉じられたときにログを記録します。

if()そのため、データベース接続を確認するため、またはオフ中にデータを取得できずにログを作成するために何かが必要です。試しif(docs != null)てみましたが、ちょっとずれているようです。どんなアドバイスでも大歓迎です!

var logger = require('bunyan');

var log = new logger({
name: "loggings",
streams: [  
    {
        level: 'error',
        path: 'test.log',   
    }
],
serializers: {
    err: logger.stdSerializers.err,
}

});

function(req, res){
memberModel.find(function(err, docs){
    if (/*connection is closed*/) {
        res.render('users.jade', { members: docs });    
    }else{
            try {
                throw new DatabaseError ("Error!");
            } catch (err){
                log.warn({err: err}, "Check database connection!");
            }
        res.render('index.jade');
    };
});
};
4

3 に答える 3

0

データベース接続が閉じられている場所をチェックインするのはなぜですか?その時点で閉じている場合は、ドキュメントがnullになる可能性があります。チェックしていると思います

if (!err) {
   res.render('users.jade', { members : docs });
} else { 
    /* throw err, etc */

受講するのに合理的なコースです。

データベース接続が閉じられたときにログを記録したいので、Dbの「close」イベントにログ関数をアタッチしてみませんか?

私が誤解していて、接続の状態をチェックすることが本当に必要なものである場合は、次のプロパティを試してみることをお勧めします。

http://mongoosejs.com/docs/api.html#connection_Connection

(「コードを表示」ボタンを押します)。接続の_closeCalledプロパティは、確認したいもののようです。

于 2012-09-11T14:00:07.933 に答える