小编dav*_*vid的帖子

Knex交易与承诺

我得到了正确的输出,实际上,这两个操作被视为单个事务单元; 如果一个失败,两个都失败了.

在这个代码示例中:我正在做一个事务

(1)插入(2)更新

我接近它的方法是将我的数据库操作嵌套在.then中.我的问题是,这个代码是偶然的吗?我是承诺和knex的新手.

knex.transaction(function(t) {
   knex('foo')
   .transacting(t)
   .insert({id:"asdfk", username:"barry", email:"barry@bar.com"})
   .then(function() {
       knex('foo')
       .where('username','=','bob')
       .update({email:"bob@foo.com"})
       .then(t.commit, t.rollback)
   })
})
.then(function() {
 // it worked
},
function() {
 // it failed
});
Run Code Online (Sandbox Code Playgroud)

这有效,但我觉得我还在做错事.寻找意见.

database transactions node.js promise

13
推荐指数
2
解决办法
2万
查看次数

标签 统计

database ×1

node.js ×1

promise ×1

transactions ×1