2016-09-27 62 views
1
pool.getConnection(function(err, connection){ 
     connection.query("QUERY 1", function(err, rows){ 
      if(err){ 
      "DO I NEED to RELEASE connection?" 
      }else{ 
       connection.query("QUERY 2", function(err, rows2){ 
        if(err){ 
         "DO I NEED to RELEASE connection?" 
        }else{ 
         connection.release(); 
        } 
       }); 
      } 
    }); 
}); 

我应该在所有地方释放连接吗? 什么是释放连接的最有效方式?节点mysql连接池版本

+0

它可能更容易使用[''pool.query()'](https://github.com/mysqljs/mysql#pooling-connections)。 – robertklep

回答

0

documentation状态:

当你与一个连接完成,只需调用connection.release() ,连接将返回到池中,随时可以通过 别人再使用。

我认为,如果getConnection没有返回错误(在您的代码示例中没有检查到一个条件),那么您必须释放该连接才能返回到池中,无论后续操作是否失败。

如果您想确认,可以对其进行测试,例如将池中最大连接数设置为1,生成错误条件并且不释放连接。您可能无法获得另一个连接。