[英]Updating dependent fields with mongoose
目标:我正在创建一个模拟交易,涉及两个帐户之间交换一定金额。 (使用NodeJS服务器和Mongoose)
| ACCOUNT1 | ACCOUNT2 | (Account Balance)
--------------------------------
T1.| 5000 | 2000 | (initial values)
--------------------------------
T2.| 3000 | 4000 | (ACCOUNT1 transfers 2000 to ACCOUNT2)
--------------------------------
问题:问题在于每个事务T1,T2都需要执行两个操作:
这两个中的任何一个失败都会导致另一个回滚
当前方法:
// save transaction log.then(function(data){
AccountHelper.updateAccount(accountOwner, fromAccount, amount)
.then(function(data){
AccountHelper.updateAccount(accountOwner, fromAccount, amount)
.then(function(data){
//some success response
}).catch(function(err){
// rollback the previous update
// respond with the err
});
})
.catch(function(err){
// respond with the err
});
//}).catch(function(err){ respond with the err});
有一个更好的方法吗? 我可以想到的另一种方法是:
事件发射器方式:
另请注意,将来可以在任何时候删除任何必须反映在当前余额中的交易(交易涉及的总和必须还原到原始帐户中)。
通常,不要。 正如mongoose-transact模块的作者雄辩地说的那样,出于某种原因,交易被排除在Mongodb中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.