2016-03-19 16 views
1

node.jsに接続プールを実装しようとしています。 getConnection()メソッドでは、プールが空の場合は、指定した数の接続でプールを作成しています。 制御がvar connection = pool[last]になると、それは私にpool is undefinedを与えます。誰かが私を助けることができますか?おかげnodejsで接続プールを実装しようとしているときに接続が未定義になる

pool = null; 
last = 0; 
function connectionPool(connectionsNumber) { 
    pool = []; 
    for (var i=0; i < connectionsNumber; ++i) { 
    pool.push(mysql.createConnection({ 
     host  : 'localhost', 
     user  : 'root', 
     password : 'Rileysteele1', 
     dateStrings : true, 
     database : 'twitter', 
     port  : 3306 
    })); 
    } 
} 

function getConnection() { 
    if (!pool) { 
    initializeConnection(40); 
    } 
    var connection = pool[last]; 
    last++; 
    if (last == pool.length) 
    last = 0; 
    return connection; 
} 

function initializeConnection() { 
    pool = new connectionPool(2); 
} 

exports.initializeConnection = initializeConnection; 
exports.getConnection = getConnection; 

答えて

0

私の推測では、connectionPool()は(newで)コンストラクタとして扱われているが、それは本当にコンストラクタではありませんし、実際に内部poolを設定しているからだということです。

pool = new部分を削除すると効果があります。

関連する問題