Node.js实现mysql连接池使用事务自动回收连接的方法示例


Posted in Javascript onFebruary 03, 2018

本文实例讲述了Node.js实现mysql连接池使用事务自动回收连接的方法。分享给大家供大家参考,具体如下:

var mysql = require('mysql'),
  Connection = require('mysql/lib/Connection.js');
var pool = mysql.createPool({
  host: '127.0.0.1',
  database: 'myDB',
  port: 3306,
  user: 'root',
  password: 'root',
  debug: false,
  connectionLimit: 3
});
var execPool = function() {
  pool.getConnection(function(err, conn) {
    transAutoRelease(conn);
    conn.beginTransaction(function(err) {
      if (err) throw err;
      conn.query("INSERT INTO test(id,name,date,test) values(1,'123',now(),1)",
        function(err, ret) {
          if (err) {
            console.error(err);
            conn.rollback(function() {});
          } else {
            console.log(ret);
            conn.query('UPDATE test set id=12321312 where id=1', function(err, ret) {
              if (err) {
                console.error(err);
                conn.rollback(function() {
                });
              } else {
                conn.commit(function() {
                  console.log('success' + JSON.stringify(ret));
                });
              }
            });
          }
        });
    });
  });
}
function after(fn, cb) { return function() {
    fn.apply(this, arguments);
    cb();
  }
}
function transAutoRelease(conn) {
  if (conn.commit == Connection.prototype.commit)
    conn.commit = after(conn.commit, release);
  if (conn.rollback == Connection.prototype.rollback)
    conn.rollback = after(conn.rollback, release);
  function release() {
    if (conn) {
      conn.release();
    }
  }
}
var intervalStartProcess = function() {
  setInterval(function() {
    execPool();
  }, 1000);
}
for (var i = 5 - 1; i >= 0; i--) {
  intervalStartProcess();
}

希望本文所述对大家nodejs程序设计有所帮助。

Javascript 相关文章推荐
JavaScript Event学习第四章 传统的事件注册模型
Feb 07 Javascript
js验证是否为数字的总结
Apr 14 Javascript
jquery实现textarea输入字符控制(仿微博输入控制字符)
Apr 26 Javascript
toggle一个div显示或隐藏且可扩展成自定义下拉框
Sep 12 Javascript
js调用打印机打印网页字体总是缩小一号的解决方法
Jan 24 Javascript
详谈$.data()的用法和作用
Feb 13 Javascript
opencv 识别微信登录验证滑动块位置
Aug 07 Javascript
css配合JavaScript实现tab标签切换效果
Oct 11 Javascript
vue使用pdfjs显示PDF可复制的实现方法
Dec 14 Javascript
Node.JS如何实现JWT原理
Sep 18 Javascript
vue将文件/图片批量打包下载zip的教程
Oct 21 Javascript
JS模拟实现京东快递单号查询
Nov 30 Javascript
js删除数组中的元素delete和splice的区别详解
Feb 03 #Javascript
JS删除数组里的某个元素方法
Feb 03 #Javascript
jQuery niceScroll滚动条错位问题的解决方法
Feb 03 #jQuery
JS实现百度搜索接口及链接功能实例代码
Feb 02 #Javascript
原生JS实现的双色球功能示例
Feb 02 #Javascript
jQuery实现的下雪动画效果示例【附源码下载】
Feb 02 #jQuery
微信小程序实现列表下拉刷新上拉加载
Jul 29 #Javascript
You might like
Laravel 5框架学习之模型、控制器、视图基础流程
2015/04/08 PHP
PHP实现双链表删除与插入节点的方法示例
2017/11/11 PHP
PDO::errorInfo讲解
2019/01/28 PHP
tp5.1 框架join方法用法实例分析
2020/05/26 PHP
JavaScript面象对象设计
2008/04/28 Javascript
Google Map Api和GOOGLE Search Api整合实现代码
2009/07/18 Javascript
替代window.event.srcElement效果的可兼容性的函数
2009/12/18 Javascript
jQuery 自动增长的文本输入框实现代码
2010/04/02 Javascript
jquery each()源代码
2011/02/14 Javascript
jquery ajax同步异步的执行最终解决方案
2013/04/26 Javascript
纯文字版返回顶端的js代码
2013/08/01 Javascript
javascript模块化是什么及其优缺点介绍
2013/09/02 Javascript
JS.getTextContent(element,preformatted)使用介绍
2013/09/21 Javascript
js实现收缩菜单效果实例代码
2013/10/30 Javascript
javascript中使用正则计算中文长度的例子
2014/04/29 Javascript
js子页面获取父页面数据示例
2014/05/15 Javascript
Iframe实现跨浏览器自适应高度解决方法
2014/09/02 Javascript
微信小程序 选择器(时间,日期,地区)实例详解
2016/11/16 Javascript
jQuery使用正则表达式替换dom元素标签用法示例
2017/01/16 Javascript
jQuery表单元素选择器代码实例
2017/02/06 Javascript
javascript 正则表达式分组、断言详解
2017/04/20 Javascript
JavaScript算法教程之sku(库存量单位)详解
2017/06/29 Javascript
vue2.0 和 animate.css的结合使用
2017/12/12 Javascript
vue项目实现记住密码到cookie功能示例(附源码)
2018/01/31 Javascript
React组件中的this的具体使用
2018/02/28 Javascript
通过javascript实现段落的收缩与展开
2019/06/26 Javascript
Vue实现购物车基本功能
2020/11/08 Javascript
python分割和拼接字符串
2013/11/01 Python
python开启摄像头以及深度学习实现目标检测方法
2018/08/03 Python
使用Py2Exe for Python3创建自己的exe程序示例
2018/10/31 Python
俄罗斯游戏商店:Buka
2020/03/01 全球购物
学校艾滋病宣传活动总结
2015/05/09 职场文书
2016年班主任新年寄语
2015/08/18 职场文书
超级实用!五步法则,教你写好年终工作总结
2019/12/05 职场文书
SpringBoot SpringEL表达式的使用
2021/07/25 Java/Android
Python写情书? 10行代码展示如何把情书写在她的照片里
2022/04/21 Python