2016-09-27 86 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,生成錯誤條件並且不釋放連接。您可能無法獲得另一個連接。