>웹 프론트엔드 >JS 튜토리얼 >Node.js에서 mysql 트랜잭션 자동 연결 재활용을 구현하는 방법

Node.js에서 mysql 트랜잭션 자동 연결 재활용을 구현하는 방법

亚连
亚连원래의
2018-06-08 10:43:561285검색

이 기사에서는 트랜잭션을 사용하여 연결을 자동으로 재활용하는 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에서 파일 업로드 진행 상황을 확인하는 방법은 무엇입니까?

자바스크립트에서 가장 긴 공통 부분 수열을 구현하는 방법

위 내용은 Node.js에서 mysql 트랜잭션 자동 연결 재활용을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.