5

案子:

我正在使用 SAILS.js 创建一个 api,sails.js 使用水线作为 ORM。api 返回可以说照片,许多用户可以为照片投票。图片将按票数排序。

程序:当用户为一首歌投票时,我必须检查投票数(“SELECT”|| picture.findById()),然后我必须将该数字加一(“UPDATE”picture.update) .

问题: Sails.js 中的事务/锁定,这两个查询应该在没有其他查询修改我们投票系统的选择和更新查询中的图片数据的情况下执行。

我们应该如何在sails.js(node js框架)中执行锁定/转换

谢谢

4

1 回答 1

0

Sails确实支持事务。

以下是sails.js 中的事务示例:

await sails.getDatastore().transaction(async db=> {

  await Model
    .create({foo: bar})
    .usingConnection(db);

  if (somethingWentWrong) {
    throw 'error happened - transaction rollback';
  }

  await Model
    .update({id: 1}))
    .set({votes: 1})
    .usingConnection(db);

}).intercept('Error', () => res.serverError());
于 2020-06-04T19:47:42.320 回答