nodejs 的 mongodb 事务处理包 mongo-tx

MIT
JavaScript 查看源码»
跨平台
2017-03-10
zaaack

一个灵活可扩展的 nodejs 的 mongodb 事务处理包,支持出错回滚,事务锁,单文档级锁,ODM 无关。

import mongoTx from 'mongo-tx'
import createMongoModel from 'mongo-tx/lib/implements/create-mongo-model'
import createMongoLock from 'mongo-tx/lib/implements/create-mongo-lock'

const runTx = mongoTx({
  createModel: createMongoModel({ db: nativeDb }),
  createLock: createMongoLock({ db: nativeDb, wait: true }), // wait is true: wait until current release is release instead of throw an error
})

await runTx('some_transfer', async tx => {
  const TxAccounts = tx.wrap('accounts')
  const acc1 = await TxAccounts.findOne({name: 'u1'})
  const acc2 = await TxAccounts.findOne({name: 'u2'})
  await TxAccounts.findOneAndUpdate({
    name: 'u1',
  }, {
    $set: {
      money: acc1.money - 100,
    },
  })
  throw new Error('Some error cause auto rollback!')
  await TxAccounts.findOneAndUpdate({
    name: 'u2',
  }, {
    $set: {
      money: acc2.money + 100,
    },
  })
})
加载中

评论(0)

暂无评论

暂无资讯

暂无问答

Spring扫描配置文件的两种方式及获取配置文件属性参数的方式

配置文件: database=192.168.21.236 database_port=3306 database_name=peep database_user=peep database_pwd=peep KY_HOME=D://peep VIRTUAL_DIR_NAME=/attachment/userfiles ACCESS_DOMA...

2016/07/05 09:43
105
0
Spring-data-mongo配置示例

Spring-data-mongo配置示例

2015/06/19 12:50
98
0
Spring配置各种库

spring框架为我们的编程提供了不少方便,其不造重复轮子的宗旨也是从一而终。 这次,想分享一下spring在整合数据库方面的xml配置方案(activemq是消息队列),整体的配置其实模式基本一样,都...

2016/11/29 17:45
6
0
maven SpringMVC 整合 mongoDB

<div class="iteye-blog-content-contain" style="font-size: 14px"></div> 一.所有架包: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchem...

2015/04/23 10:47
133
0
Titan Framework 内部接口与函数说明书

HTTP与网络 Spring风格的Restful的Controller: RestfulController 通用Restful API Controller –org.titan.framework.facade.controller.RestfulController 方法 参数 返回值 说明 getCre...

10/18 11:13
5
0
mongodb_shard

限制内存大小 http://blog.csdn.net/crazyjixiang/article/details/7058990 mkdir -p /home/mongo/mulishard/data/10001 mkdir -p /home/mongo/mulishard/data/10002 mkdir -p /home/mongo/m...

2012/10/17 23:45
119
0
mongodb 备份压缩及清除指定日期前的数据

#!/usr/bin/bash #define:Mongodb data backup regularly, delete data before the specified time #date:2016-12-20 curr_dir=`pwd` back_dir="/data/bak/mongodb_bak" mongo_comm="/usr/lo...

2016/12/28 15:50
153
0
mongo数据项目应用

mongo数据项目应用

2016/07/21 13:49
111
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部