nodejs - sails.js锁定查询(事务)

use*_*112 5 locking node.js sails.js waterline

案子:

我正在用SAILS.js创建一个api,sails.js使用水线进行ORM.api返回让我们说照片,很多用户都可以投票给一张照片.图片将以投票数量排序.

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

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

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

谢谢

小智 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());
Run Code Online (Sandbox Code Playgroud)