egg-sequelize事务
async addUser () {
const { ctx } = this;
const body = ctx.request.body
let transaction = null
try {
transaction = await this.ctx.model.transaction();
let list = await ctx.model.User.create({
name: body.name,
addr: body.addr,
}, { transaction })
await ctx.model.Models.create({
name: body.modelName,
}, { transaction });
await transaction.commit();
// throw new Error(); // 即使数据库操作成功 , 此条语句依然会回滚
ctx.body = { code: 2, msg: '' }
} catch (error) {
await transaction.rollback();
ctx.body = { code: 0, msg: 'err' }
}
}
本文介绍了一个使用egg.js框架和sequelize ORM进行数据库事务处理的方法。通过一个具体的示例,展示了如何在创建用户和模型的过程中使用事务来确保数据的一致性和完整性。如果在事务中发生错误,将触发回滚,确保数据不会处于不一致的状态。
458

被折叠的 条评论
为什么被折叠?



