2017-09-22 6 views
0

mysql接続プールを使用して接続を作成しています。コードは次のようになります。ノードjsとmysqlでdb接続が成功したかどうかを確認する方法

var pool = mysql.createPool(connectionProps); 

プールにアクセスすると、接続が成功していなくてもオブジェクトを取得できます。私はmysqlの起動と停止を確認しました。

私が欲しいのは、接続が成功したかどうかを次のように確認する必要があります。

if(pool){ // mysql is started && connected successfully. 
    console.log('Connection Success'); 
    doSomething(); 
}else{ 
    console.log('Cant connect to db, Check ur db connection'); 
} 

このようなものが必要です。では、mysql poolオブジェクトを使ってこれをどのように行うことができますか?誰か助けてくれますか?

感謝のnよろしく

答えて

0

一般的にあなたがDBから任意選択し、何かのような何かをして、それが失敗した場合は、エラーをキャッチします。 docsの例

const pool = mysql.createPool(connectionProps); 
pool.query('SELECT 1 + 1 AS solution', (error, results, fields) => { 
    if (error) throw error; 
    console.log('The solution is: ', results[0].solution); 
}); 
0
var pool = mysql.createPool(config.db); 
exports.connection = { 
query: function() { 
    var queryArgs = Array.prototype.slice.call(arguments), 
     events = [], 
     eventNameIndex = {}; 

    pool.getConnection(function (err, conn) { 
     if (err) { 
      if (eventNameIndex.error) { 
       eventNameIndex.error(); 
      } 
     } 
     if (conn) { 
      var q = conn.query.apply(conn, queryArgs); 
      q.on('end', function() { 
       conn.release(); 
      }); 

      events.forEach(function (args) { 
       q.on.apply(q, args); 
      }); 
     } 
    }); 

    return { 
     on: function (eventName, callback) { 
      events.push(Array.prototype.slice.call(arguments)); 
      eventNameIndex[eventName] = callback; 
      return this; 
     } 
    }; 
} 
}; 

など、それを使用する必要が:

db.connection.query("SELECT * FROM `table` WHERE `id` = ? ", row_id) 
     .on('result', function (row) { 
     setData(row); 
     }) 
     .on('error', function (err) { 
     callback({error: true, err: err}); 
     });