이 기사에서는 트랜잭션을 사용하여 연결을 자동으로 재활용하는 Node.js의 방법을 주로 소개합니다. node.js의 관련 기술을 분석하여 트랜잭션 기반 연결 재활용 작업을 구현하는 mysql 연결 풀을 예제 형식으로 설명합니다. 도움이 필요한 친구는 다음을 참조할 수 있습니다.
이 기사의 예에서는 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(); }
위 내용은 제가 모든 사람을 위해 정리한 내용입니다. 앞으로 모든 사람에게 도움이 되기를 바랍니다.
관련 기사:
Node.js에서 파일 업로드 진행 상황을 확인하는 방법은 무엇입니까?
자바스크립트에서 가장 긴 공통 부분 수열을 구현하는 방법
위 내용은 Node.js에서 mysql 트랜잭션 자동 연결 재활용을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!