首页 > 数据库 >Node Mysql连接池操作封装

Node Mysql连接池操作封装

时间:2023-06-14 21:35:59浏览次数:40  
标签:Node me err Mysql pool mysql config 连接池


之前写了一个对mysql操作的封装的博客:node mysql操作封装

后面方向,当你访问量比较大的时候,直接用mysql的连接是会崩掉的,不支持这么多的连接,用连接池操作比较好,然后就操作了一下

const mysql = require('mysql');

module.exports = {
    config: {
        host: 'localhost',
        port: 3306,
        database: 'glory_of_kings',
        user: 'root',
        password: 'root',
        useConnectionPooling: true // 使用连接池
    },
    pool: null,
    /**
     * 创建连接池
     */
    create: function () {
        const me = this;
        // 没有pool的才创建
        if (!me.pool) {
            me.pool = mysql.createPool(me.config);
        }
    },
    /**
     * 执行sql
     * @param {Object} config 操作对象
     */
    exec: function (config) {
        const me = this;
        me.create();
        me.pool.getConnection((err, conn) => {
            if (err) {
                console.log('mysql pool getConnections err:' + err);
                throw err;
            } else {
                conn.query(config.sql, config.params, (err, result) => {
                    if (config.success) {
                        config.success(result);
                    }
                    if (config.error) {
                        config.error(err)
                    }
                    // 释放连接到连接池
                    conn.release();
                });
            }
        });
    }
};

//test
const handler = require('./mysqlHandler.js');
handler.exec({
    sql: 'select * from table where id = ?',
    params: [id],
    success: res => {
        console.log(res);
    },
    error: err => {
        console.log(err);
    }
});

 

标签:Node,me,err,Mysql,pool,mysql,config,连接池
From: https://blog.51cto.com/u_16159492/6481490

相关文章

  • Node抓取有道精品课视频
    最近想把有道精品课快过期的课程视频弄下来,刚开始想着录屏,但是那个太麻烦了,长一点的视频要一直在那里录制,影响其他工作,刚开始想着获取视频连接,看能不能下载,结果发开发现403,应该是加密处理了,不让直接下载头疼了一会儿,然后想着用迅雷下载一下试试看,结果真的能下载(后面发现,下载多了可......
  • 阿里云服务器-mysql远程连接
    这两天买了个阿里云服务器,自己搞了一下,装了mysql,因为平时Navicat用习惯了,想着陪一下服务器的数据库,这样就方便操作了,然后搞了变天,设置bind-address,修改服务器端口,结果一番下来,还是没成功。然后今天看到了一个帖子UbuntuServer16.04下配置MySQL并开启远程连接,说是好像因为mysql结......
  • Node rar压缩/解压文件
    暂时未发现node有好用的rar解压/压缩库,所以就自己搜索了一下,简单写了一个,并做了个简单的封装。rar文件的压缩/解压是通过命令行来完成的,所以就需要node的child_process库,这个npmixxx就可以了。大概了解了下rar的语法,这个在WinRAR的安装文件目录下可以看到,我的是:C:/ProgramFiles......
  • Node Mysql操作封装
    由于最近要写个签到系统,频繁的操作mysql导致代码量暴涨,就想着优化下SQL的结构,减少工作量。'usestrict';varmysql=require('mysql');//数据库配置module.exports={/***数据库配置*/config:{host:'localhost',port:3306,......
  • 【JS错题总结】node中的微任务
    答案是n1n2p1p2 原因:node中的微任务包含两部分:1.process.nextTick()注册的回调(nextTicktaskqueue)2.promise.then()注册的回调(promise taskqueue) node在执行微任务时,会优先执行nextTicktaskqueue中的任务,执行完之后接着执行promisetaskqueue......
  • Windows安装多版本MySQL(命令行)
    注意:电脑上可以多个数据库版本共存,但是在初次安装执行mysqld-installmysql的时候需要将mysql替换为唯一的名字,并且环境变量只能配置一个1.windows中下载指定版本官网下载命令行版本:https://dev.mysql.com/downloads/mysql/解压到指定位置编写my.ini文件[mysqld]#设......
  • Mysql8.0.32 union all创建视图无法使用中文模糊查询的坑
    Mysql8.0.32unionall创建视图无法使用中文模糊查询的坑摘要本周研发同事反馈现场有一个问题.客户使用mysql的数据库(Windows平台)然后在多表unionall创建的视图内执行查询如果使用中文模拟查询,就没结果返回.大部分csdn的搜索结构都是说需要在my.ini里面增加部分默......
  • 【后端面经-数据库】MySQL的事务隔离级别简介
    (【后端面经-数据库】MySQL的事务隔离级别简介)0.事务的概念事务指的是一连串的集中操作指令,一个事务的执行必须执行完所有的动作才能算作执行结束。事务具有四个特点,简记作ACID:A-Atomicity:原子性,事务的执行必须保证所有的动作都执行完毕;C-Consistency:一致性,事务的执行必......
  • navicat连不上服务器的mysql?
    服务器安装mysql,释放3306端口就不用说了,然后就是配置一下数据库的权限,1.进入ubuntu,连接数据库并输入密码:mysql-u-root-p2.输入一下命令进行授权(mysql语句不区分大小写):grantallprivilegeson*.*to'root'@'%'identifiedby'你的mysql密码'withgrantoption;3.刷新权限......
  • 【后端面经-数据库】MySQL的事务隔离级别简介
    目录0.事务的概念1.三类问题2.事务隔离级别3.操作指令4.总结5.参考博文0.事务的概念事务指的是一连串的集中操作指令,一个事务的执行必须执行完所有的动作才能算作执行结束。事务具有四个特点,简记作ACID:A-Atomicity:原子性,事务的执行必须保证所有的动作都执行完毕;C-Co......