如题;node后台使用mysql数据库,并使用事务来管理数据库操作。

这里主要讲一个事务的封装并写了一个INSERT 插入操作。

code:

基础code:

db.config.js
 const mysql = require('mysql')

 const pool = mysql.createPool({
connectionLimit: 20, //连接池连接数
host: 'localhost', //数据库地址,这里用的是本地
database: 'xxxx', //数据库名称
user: 'xxxxx', // username
password: '*****' // password
})
//返回一个Promise链接
const connectHandle = () => new Promise((resolve, reject) => {
pool.getConnection((err, connection) => {
if(err) {
console.error('链接错误:' + err.stack + '\n' + '链接ID:' + connection.threadId)
reject(err)
} else {
resolve(connection)
}
})
}) module.exports = connectHandle

事务操作

 const connectHandler = require('./db.config') //引入上面所讲的数据库基础配置

 const insertHandler = async (vals) => {
const connection = await connectHandler() // 得到链接
const tablename = 'xxxxx' //动态table(表)名称
//开启事务
connection.beginTransaction( err => {
if(err) {
return '开启事务失败'
} else {
//执行INSERT插入操作
connection.query(`INSERT INTO ${tablename} SET ?`, vals, (e, rows, fields) => {
if(e) {
return connection.rollback(() => {
console.log('插入失败数据回滚')
})
} else {
connection.commit((error) => {
if(error) {
console.log('事务提交失败')
}
})
connection.release() // 释放链接
return {rows, success: true} // 返回数据库操作结果这里数据格式可根据个人或团队规范来定制
}
})
}
})
} module.exports = {
insertHandler
}

相关操作步骤已经在注释中写明,本人实测有效。如需使用需加上自己的数据库配置及相关表明等动态配置。

有问题还原大家留言指正,国庆快到了祝大家节日快乐~

最新文章

  1. HTML <meta> 标签,搜索引擎
  2. PHP 根据key 给二维数组分组
  3. Unity Shader入门
  4. Linux下查看文件和文件夹大小
  5. DNS反射攻击阻止
  6. android 设计工具栏
  7. 11. Container With Most Water
  8. C++14介绍
  9. 探秘ReSharper8.1版本中Architecture(架构工具)的改进
  10. 笔记:Spring Cloud Feign 其他配置
  11. django 实战篇之模板层
  12. HTML实现页面自动跳转的五种方法
  13. How to delete deployed process definition in activiti?
  14. 丑闻第三季 /全集Scandal迅雷下载
  15. php封装数据库函数
  16. Django请求响应对象
  17. git的常见问题
  18. (转)Springboot+shiro配置笔记+错误小结
  19. jquery和dom对象相互转化的方法
  20. Microsoft Power BI Desktop概念学习系列之Microsoft Power BI Desktop是什么?

热门文章

  1. WOJ600——水题
  2. zabbix基础安装
  3. 修改mysql数据默认存储路径
  4. 机器翻译注意力机制及其PyTorch实现
  5. BZOJ 4695 最假女选手 线段树
  6. leds-gpio driver
  7. tomcat排错以及优化
  8. ajax 简单学习
  9. 找到多个与名为“Home”的控制器匹配的类型。
  10. Mybatis传递多个参数的4种方式(干货)