16

I am developing NodeJS + MySQL web API.

I am using mysql npm module.

I want know connection is release or not is there any function or variable. Like

if(!connection.isRelease() OR !connection.isClose() OR !connection.end()) {
    connection.release();
}

Is there any specific function to know connection is release or not?

I am getting error like "connection already release"

Ankur Loriya
  • 3,276
  • 8
  • 31
  • 58

2 Answers2

27

You can check if the connection is in the pool to see if it was released. The index in the free connections will be -1 if the connection is not released. Here is an example.

var mysql = require('mysql');
var pool  = mysql.createPool({
  connectionLimit : 10,
  host            : 'localhost',
  user            : 'root',
  password        : ''
});

pool.getConnection(function(err, connection) {
    connection.query( 'SELECT something FROM sometable', function(err, rows) {

      console.log(pool._freeConnections.indexOf(connection)); // -1

      connection.release();

      console.log(pool._freeConnections.indexOf(connection)); // 0

   });
});
curtwphillips
  • 5,441
  • 1
  • 20
  • 19
8

Just in case you don't have access to the pool you can also do this:

connection._pool._freeConnections.indexOf(connection)

This will give you the same answer as the accepted answer.

kiwicomb123
  • 1,503
  • 21
  • 26