1. 程式人生 > 其它 >eggjs多sql異常,事務回滾

eggjs多sql異常,事務回滾

技術標籤:egg.jsnodejs

'use strict';

const Controller = require('egg').Controller;

class HomeController extends Controller {
    async index() {
        const { ctx } = this;
        try {
            var transaction = await ctx.model.transaction();
            let i = 4;
            // 這一條會成功
            await ctx.model.Address.create({
                id: i + 1,
                address: '測試鴨'
            }, {
                transaction
            })
            // 這一條會成功
            await ctx.model.Address.create({
                id: i + 2,
                address: '測試鴨'
            }, {
                transaction
            })
            // 這一條會失敗
            var res = await ctx.model.Addr.create({
                addr_no: i+6,
                addr_name: '測試鴨',
                addr_pos: 96,
            }, {
                transaction
            })
            await transaction.commit();
        } catch (err) {
            await transaction.rollback();
        }
        console.log(res);
        if (!res) {
            ctx.body = '執行失敗';
        } else {
            ctx.body = '執行成功' + JSON.stringify(res.dataValues)
        }
    }
}

module.exports = HomeController;

資料庫也沒有寫入任何記錄