MySql 连接池释放的问题(node.js)

Express使用 Mysql , 用单例连接池, 用 EventProxy 来处理,

关于释放连接池, 是否 只需要 保留 释放位置二就可以了? 两个都留会报错, 去掉一,又担心没释放

    var pool = connPool();
    pool.getConnection(function (err, conn) {
        
        // 查询二,需要查询一所得结果,再进行查询
        eventproxy.all(['queryCount'], function (result) {
            conn.query(querySql, result['param'], function (err, rs) {
                ...
            })
            conn.release();    // 释放位置二

        });
        
        // 查询一
        conn.query(countSql, [], function (err, rs) {
            ...
            eventproxy.emit('queryCount', result);
        });
        conn.release();    // 释放位置一
    })
阅读 5.7k
2 个回答

只需要保留all里面的释放位置2就行了。

这个是在所有的查询结束后才会触发这个all这里的事件执行。

把 conn.release() 放到query里面,执行完就释放

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题