【node】nodejs promise-mysql 处理事务

2018-01-11  本文已影响0人  赵卓boomboom

项目用到了node来做后台服务端,自然避免不了要用redis、sql等等。在mysql中挑了promise-mysql来做,其中的pool连接池用着挺方便的。

但最近的业务需要用上事务,官方文档貌似没有特别的说明。

源码的pool有个getConnection的方法,同时return new PoolConnection

再看看这个PoolConnection,调用了Connection.call(this, null, _connection),说明具有connection的所有功能

便可追进Connection里面看,有beginTransaction,query,commit,rollback,足够我们使用,另外PoolConnection里面还有release方法,保证了pool连接池的不用destroy掉这个connection。

不说废话,直接贴码

  let conn = await pool.getConnection()
  await conn.beginTransaction()
  try {
      await conn.query('sql语句')
      await conn.query('sql语句')
      await conn.query('sql语句')
      await conn.commit()
  } catch (err) {
      await conn.rollback()
  } finally {
      conn.release()
   }
上一篇 下一篇

猜你喜欢

热点阅读