素材牛VIP会员
Node MySQL库连接池问题
 陌***4  分类:SQL代码  人气:840  回帖:1  发布于6年前 收藏
var mysql = require('mysql');
var pool = mysql.createPool({
    host: 'localhost',
    user: 'nodejs',
    password: 'nodejs',
    database: 'nodejs',
    port: 3306
});

// 第一种方式
pool.getConnection(function (err, conn) {
    conn.query("select * from user limit 1",function(err,rows){
        // 数据处理
        conn.release();
    });
});

// 第二种方式
pool.query("select * from user limit 1",function(err,rows){
    // 数据处理
});

这两种方式都有没有问题, 那两者有什么区别呢?

 标签:nodemysql

讨论这个帖子(1)垃圾回帖将一律封号处理……

Lv6 码匠
q1***51 UI设计师 6年前#1
  • 参见:https://www.npmjs.com/package...

  • 上面NPM文档说,可以直接使用pool.query(),同时,又说了,当你使用完连接时,调用connection.release()

  • 文档中也说了,connection.release()方法是在用完连接池中的某个连接之后,将其放回到连接池中去的操作

  • 所以,我猜测,说“直接使用pool.query()”,应该是自动完成了connection.release()释放连接控制权的操作

  • 后来,我翻了一下源文件:GitHub

  • 从190行开始,可以看到pool.query()调用了getConnection方法,而且在用完后,执行了query.once('end', function() {conn.release();});,说明前面的猜测是正确的

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取