Node.js實(shí)現(xiàn)mysql連接池使用事務(wù)自動(dòng)回收連接的方法示例
本文實(shí)例講述了Node.js實(shí)現(xiàn)mysql連接池使用事務(wù)自動(dòng)回收連接的方法。分享給大家供大家參考,具體如下:
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();
}
希望本文所述對(duì)大家nodejs程序設(shè)計(jì)有所幫助。
相關(guān)文章
使用vs code開(kāi)發(fā)Nodejs程序的使用方法
本篇文章主要介紹了使用vs code開(kāi)發(fā)Nodejs程序的使用方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09
node.js如何操作MySQL數(shù)據(jù)庫(kù)
這篇文章主要介紹了node.js如何操作MySQL數(shù)據(jù)庫(kù),幫助大家更好的進(jìn)行web開(kāi)發(fā),感興趣的朋友可以了解下2020-10-10
nodejs實(shí)現(xiàn)發(fā)出蜂鳴聲音(系統(tǒng)報(bào)警聲)的方法
這篇文章主要介紹了nodejs實(shí)現(xiàn)發(fā)出蜂鳴聲音(系統(tǒng)報(bào)警聲)的方法,結(jié)合實(shí)例形式分析了nodejs發(fā)出蜂鳴聲的原理及具體應(yīng)用方法,需要的朋友可以參考下2017-01-01
NodeJS實(shí)現(xiàn)一個(gè)聊天室功能
這篇文章主要介紹了NodeJS實(shí)現(xiàn)一個(gè)聊天室功能,本文實(shí)例截圖相結(jié)合給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11
基于NodeJS+MongoDB+AngularJS+Bootstrap開(kāi)發(fā)書店案例分析
這章的目的是為了把前面所學(xué)習(xí)的內(nèi)容整合一下,這個(gè)示例完成一個(gè)簡(jiǎn)單圖書管理模塊,因?yàn)橹虚g需要使用到Bootstrap這里先介紹Bootstrap2017-01-01
node.js模擬實(shí)現(xiàn)自動(dòng)發(fā)送郵件驗(yàn)證碼
這篇文章主要為大家介紹了node.js模擬實(shí)現(xiàn)自動(dòng)發(fā)送郵件驗(yàn)證碼的實(shí)例過(guò)程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04

