node+mysql数据库连接池连接的方法是什么

mysql有两种连接方式:一种是直接连接 另一种是池化连接,我们这篇讲的是池化连接。

为了让解惑,我简答的写份直接连接的代码,如下:

var mysql = require('mysql');var connection = mysql.createConnection({  host     : 'localhost',  user     : 'ac',  password : '123456',  database : 'textPro'}); connection.connect(); connection.query('SELECT * from1 userInfo', function (error, results, fields) {  if (error) throw error;  console.log('The solution is: ', results);}); connection.end();

createConnection和createPool的区别是: createPool(连接池)连接可以更加合理的利用服务器资料,减少资料浪费

安装之后在db/index.js中开始编写:

const mysql = require("mysql") //创建连接池const db= mysql.createPool({      host : 'localhost', //连接主机    port : 3306,   //端口号    database : 'test',  //连接的是哪一个库    user : 'root',   //用户名    password : '',    //密码    connectionLimit : 50, //用于指定连接池中最大的链接数,默认属性值为10.     //用于指定允许挂起的最大连接数,如果挂起的连接数超过该数值,就会立即抛出一个错误,    //默认属性值为0.代表不允许被挂起的最大连接数。    queueLimit:3 })

建立了连接池之后,可以直接使用连接池对象的getConnection方法从连接池中获取一个连接,如果连接池中没有可用连接,将隐式的建立一个数据库连接。

const mysql = require("mysql") //创建连接池const db= mysql.createPool({      host : 'localhost', //连接主机    port : 3306,   //端口号    database : 'test',  //连接的是哪一个库    user : 'root',   //用户名    password : '',    //密码    connectionLimit : 50, //用于指定连接池中最大的链接数,默认属性值为10.     //用于指定允许挂起的最大连接数,如果挂起的连接数超过该数值,就会立即抛出一个错误,    //默认属性值为0.代表不允许被挂起的最大连接数。    queueLimit:3 })   module.exports.query = (sql, values.callback) => {  //err: 该参数是指操作失败时的错误对象。  //connection: 该值为一个对象,代表获取到的连接对象。当连接失败时,该值为undefined。  db.getConnection(function(err, connection) {    if (err) {      console.log('与mysql数据库建立连接失败');      pool.releaseConnection(); //释放链接    } else {      console.log('与mysql数据库建立连接成功');      connection.query(sql,values,(err, res) => {        if (err) {          console.log('执行sql语句失败,查询数据失败');          //connection.release() 当一个连接不需要使用时,使用该方法将其归还到连接池中 release释放          connection.release();          callback(err,null)        } else {           console.log('执行sql语句成功');           callback(null,res)          //pool.end() 当一个连接池不需要使用时,可以使用该方法关闭连接池          pool.end();        }      })    }  })}

引入 调用db模块

阿里云-虚拟数字人 阿里云-虚拟数字人

阿里云-虚拟数字人是什么? …

阿里云-虚拟数字人 2 查看详情 阿里云-虚拟数字人

const query=require('./db').query;let sql='SELECT * FROM class WHERE class_id=? AND class_name=?' let userId=1;let userName='阿辰';query(sql,[userId,userName],(err,res)=>{    if(err){        console.log('发生了错误***',err)        return    }console.log('找到了',res)})

const query=require(‘./db’).query与const query=require(‘./db’)区别

第一种写法只获取到了”./db”模块中的query函数,如果需要使用其他导出项,则需要再次获取。

第二种写法获取到了”./db”模块导出的所有项,不需要在代码中反复获取不同的导出项。

以上就是node+mysql数据库连接池连接的方法是什么的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/265306.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月4日 10:22:11
下一篇 2025年11月4日 10:23:08

相关推荐

发表回复

登录后才能评论
关注微信