如何在异步函数中添加 sequlize.js 事务

巴吞卡尔汗

到目前为止,我还没有在我的项目中添加事务。现在我认为我自己升级到那个级别。

如果我需要更新主表、详细信息表和日志表,我会做这样的事情。

export async function create(req,res,next){
    try{

    const add_to_master_table = await db.Inovice_master.create();

    const add_to_detail_table = await db.Invoice_detail.create();

    const add_to_user_logs = await db.User_logs.create();

    res.sendStatus(200);

    }catch(error){
        res.sendStatus(500);
    }
}

在 sequelize 文档交易中是这样的

return sequelize.transaction(function (t) {

  // chain all your queries here. make sure you return them.
  return User.create({
    firstName: 'Abraham',
    lastName: 'Lincoln'
  }, {transaction: t}).then(function (user) {
    return user.setShooter({
      firstName: 'John',
      lastName: 'Boothe'
    }, {transaction: t});
  });

}).then(function (result) {
  // Transaction has been committed
  // result is whatever the result of the promise chain returned to the transaction callback
}).catch(function (err) {
  // Transaction has been rolled back
  // err is whatever rejected the promise chain returned to the transaction callback
});

所以我的问题是如何在不离开异步/等待方式的情况下将事务嵌入到我的代码中。

任何帮助!

拉胡尔·夏尔马

你可以用这种方式写下来。

return sequelize.transaction(async (t) =>  {

  let user = await User.create({firstName: 'Abraham', lastName: 'Lincoln'}, { transaction: t })
  user = await user.setShooter({ firstName: 'John', lastName: 'Boothe'}, { transaction: t });
  return user
})

我更喜欢使用 CLS 机制来传递事务,您也不必将事务传递给每个查询。

自动将事务传递给所有查询

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Sequlize js如何根据CURRENT_DATE进行日期比较

来自分类Dev

Node.js + SQLite异步事务

来自分类Dev

Node.js-如何使用Sequelize事务

来自分类Dev

node.js 中的 ACID 事务

来自分类常见问题

Node.js 7如何在异步/等待中使用序列化事务?

来自分类Dev

Sequlize.js:.update 不返回受影响的行

来自分类Dev

Node.js,PostgreSQL中的事务冲突,乐观的并发控制和事务重试

来自分类Dev

如何使用简单的表单和js检查条纹事务的响应

来自分类Dev

在Node.js中处理回滚的MySQL事务

来自分类Dev

如何在Node.js中处理异步函数

来自分类Dev

如何在Node.js中处理异步函数

来自分类Dev

领域写入事务失败,尽管在事务中

来自分类Dev

如何在事务中调用多个DAO函数

来自分类Dev

Hyperledger Fabric:如何在JS / Node中使用链码捕获事务错误?

来自分类Dev

如何在 Sequlize 中正确编写包含多个包含的复杂查询?

来自分类Dev

Sequlize 如何在 where 类中使用连接表的属性名称

来自分类Dev

plpgsql函数内部的事务

来自分类Dev

如何强制postgres函数不在事务中

来自分类Dev

PostgreSQL中的事务

来自分类Dev

EJB中的事务传播

来自分类Dev

Postgresql中的事务共享

来自分类Dev

nodejs中的事务

来自分类Dev

事务中的SQL IF语句

来自分类Dev

EJB中的事务传播

来自分类Dev

WebLogic OSGi中的事务

来自分类Dev

sql中的事务记录

来自分类Dev

Corda 中的事务捆绑

来自分类Dev

如何在ODBC中启动事务?

来自分类Dev

如何在事务中获取当前查询