gpt4 book ai didi

bookshelf.js - 托收交易

转载 作者:行者123 更新时间:2023-12-01 13:44:56 25 4
gpt4 key购买 nike

如何使用事务处理 t,我想确保在保存记录之前成功删除该行:

var Roles = bookshelf.Collection.extend({
model: Role
);

Role.where('name', '=', 'Staff').destroy();

var roles = Roles.forge([{name: 'Staff'}, {name: 'Guest'}]);

Promise.all(roles.invoke('save')).then(function(role) {
resolve(role);
}).catch(function (err) {
reject({"status":"error", "data": err});
});

最佳答案

您可以只使用 Bookshelf 的 transaction() 方法。

但首先您的save() 必须在destroy() promise 的上下文中,因此要确保正确的顺序,否则您将面临保存的数据也被删除的风险被摧毁。

所以它可能看起来像:

var Roles = bookshelf.Collection.extend({
model: Role
});

bookshelf.transaction(function(t) {
return Role
.where('name', '=', 'Staff')
.destroy({transacting: t})
.then(function() {
var roles = Roles.forge([{name: 'Staff'}, {name: 'Guest'}]);
return roles
.invokeThen('save', null, {transacting: t});
});
});

关于bookshelf.js - 托收交易,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36639073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com