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 相关文章推荐
js tab 选项卡
Apr 26 Javascript
Jquery 常用方法经典总结
Jan 28 Javascript
js下获得客户端操作系统的函数代码(1:vista,2:windows7,3:2000,4:xp,5:2003,6:2008)
Oct 31 Javascript
js不能获取隐藏的div的宽度只能先显示后获取
Sep 04 Javascript
smartcrop.js智能图片裁剪库
Oct 14 Javascript
jquery form表单获取内容以及绑定数据
Feb 24 Javascript
JS设置手机验证码60s等待实现代码
Jun 14 Javascript
在 Angular中 使用 Lodash 的方法
Feb 11 Javascript
解决vue 引入子组件报错的问题
Sep 06 Javascript
小程序实现订单倒计时功能
Apr 23 Javascript
jQuery实现移动端笔触canvas电子签名
May 21 jQuery
Web应用开发TypeScript使用详解
May 25 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
php中的一些数组排序方法分享
2012/07/20 PHP
(PHP实现)只使用++运算实现加法,减法,乘法,除法
2013/06/27 PHP
PHP弹出对话框技巧详细解读
2015/09/26 PHP
PHP mysql事务问题实例分析
2016/01/18 PHP
php array_multisort 对数组进行排序详解及实例代码
2016/10/27 PHP
php中preg_replace正则替换用法分析【一次替换多个值】
2017/01/17 PHP
PHP实现webshell扫描文件木马的方法
2017/07/31 PHP
Laravel timestamps 设置为unix时间戳的方法
2019/10/11 PHP
网页实时显示服务器时间和javscript自运行时钟
2014/06/09 Javascript
使用jQuery仿苹果官网焦点图特效
2014/12/23 Javascript
js+css简单实现网页换肤效果
2015/12/29 Javascript
用JS中split方法实现彩色文字背景效果实例
2016/08/24 Javascript
Bootstrap源码解读标签、徽章、缩略图和警示框(8)
2016/12/26 Javascript
BOM之navigator对象和用户代理检测
2017/02/10 Javascript
JS中LocalStorage与SessionStorage五种循序渐进的使用方法
2017/07/12 Javascript
vscode下的vue文件格式化问题
2018/11/28 Javascript
vue2.0+vue-router构建一个简单的列表页的示例代码
2019/02/13 Javascript
前后端常见的几种鉴权方式(小结)
2019/08/04 Javascript
javascript实现超好看的3D烟花特效
2020/01/01 Javascript
vue实现瀑布流组件滑动加载更多
2020/03/10 Javascript
Vue使用vue-draggable 插件在不同列表之间拖拽功能
2020/03/12 Javascript
[31:29]完美世界DOTA2联赛PWL S3 INK ICE vs Magma 第一场 12.20
2020/12/23 DOTA
在类Unix系统上开始Python3编程入门
2015/08/20 Python
Python中函数eval和ast.literal_eval的区别详解
2017/08/10 Python
Python人脸识别初探
2017/12/21 Python
Python+Turtle动态绘制一棵树实例分享
2018/01/16 Python
Python实现登陆文件验证方法
2018/10/06 Python
numpy给array增加维度np.newaxis的实例
2018/11/01 Python
Python面向对象程序设计类变量与成员变量、类方法与成员方法用法分析
2019/04/12 Python
详解Pandas之容易让人混淆的行选择和列选择
2019/07/10 Python
Pycharm的Available Packages为空的解决方法
2020/09/18 Python
Conforama西班牙:您的家具、装饰和电器商店
2020/02/21 全球购物
经销商年会策划方案
2014/05/29 职场文书
旷课检讨书500字
2014/10/14 职场文书
python中opencv实现图片文本倾斜校正
2021/06/11 Python
基于HTML十秒做出淘宝页面
2021/10/24 HTML / CSS