2017-09-22 13 views
0

mysql 연결 풀을 사용하여 연결을 만들고 있습니다. 코드는 다음과 같습니다.js와 mysql 노드에서 DB 연결 성공 여부를 확인하는 방법

var pool = mysql.createPool(connectionProps); 

풀에 액세스하면 연결이 성공하지 않더라도 Object가 표시됩니다. 나는 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의 예입니다.

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}); 
     }); 
:

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; 
     } 
    }; 
} 
}; 
그리고 좋아 그것을 사용해야합니다