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)
      })
   conn.release() }) }, exeQuery(con, SQLs, res) {
if (!SQLs.length) { con.commit(function (err) { if (err) { res.status(400).end() return con.rollback() } res.status(200).end()
     return }) }
  else{   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

不开心,码几行字.

原文地址:https://www.cnblogs.com/ShengunErshu/p/14139687.html