数据库
首页 > 数据库> > Node.js 中 mysql 事务的写法

Node.js 中 mysql 事务的写法

作者:互联网

最近做一个公司内部的信息化平台,本着短平快,选择了 Nodejs + Express + Vue + mysql/mongodb 的技术路线.

该写法主要利用了递归,下面把事务的写法记录一下,做了简单的封装:

const mysql = require('mysql')
const cfg = require('../appConfig.json')

var sqlpool = mysql.createPool(cfg.mysql)
const conns = {
  sqlpool: sqlpool,
  transaction(SQLs, res) {
    this.sqlpool.getConnection((err, conn) => {
      if (err) {
        res.status(400).end()
        return
      }
      conn.beginTransaction(err => {
        if (err) {
          res.status(400).end()
          return
        }
        this.exeQuery(conn, SQLs, res)
      })
    })
  },
  exeQuery(con, SQLs, res) {
    if (!SQLs.length) {
      con.commit(function (err) {
        if (err) {
          res.status(400).end()
          return con.rollback()
        }
        res.status(200).end()
      })
    }
    let s = SQLs.shift()
    con.query(s, err => {
      if (err) {
        con.rollback()
        res.status(400).end()
        return
      }
      this.exeQuery(con, SQLs, res)
    })
  }
}

module.exports = conns

不开心,码几行字.

标签:Node,status,err,res,SQLs,js,mysql,con
来源: https://www.cnblogs.com/ShengunErshu/p/14139687.html