Loopbackjs strong循环环回:以原子方式锁定模型实例

Loopbackjs strong循环环回:以原子方式锁定模型实例,loopbackjs,Loopbackjs,我通过strongloop的环回提供RESTAPI 我需要通过以下调用添加模型实例的锁定: POST/User/{id}/tryLock 它返回一个锁实例,并附带一些附加信息:锁是否成功,哪个用户锁定了对象,等等 我正在使用环回连接器mysql,我知道在同步mysql中,我将使用某种形式的: BEGIN TRANSACTION; SELECT lockId FROM object WHERE id = objectId FOR UPDATE; // This is C++ or Java o

我通过strongloop的环回提供RESTAPI

我需要通过以下调用添加模型实例的锁定:

POST/User/{id}/tryLock

它返回一个锁实例,并附带一些附加信息:锁是否成功,哪个用户锁定了对象,等等

我正在使用环回连接器mysql,我知道在同步mysql中,我将使用某种形式的:

BEGIN TRANSACTION;
SELECT lockId FROM object WHERE id = objectId FOR UPDATE;

// This is C++ or Java or whatever:
if(lockId != NULL)
   Fatal("Object was locked")

INSERT INTO locks (objectId, userId, ...);
UPDATE object SET lockId = locks.lastInsertId WHERE id = objectId;
COMMIT;
环回中是否可能出现类似的情况?我希望将其实现为mixin,这样我就可以将其用于选定的模型

谢谢大家!

要使用的东西是

有一种方法可以通过环回连接器mysql执行SQL语句

因此,我的直觉是看看是否可以将SQL语句写入其中(假设您的用户模式绑定到MySQL,并且用户模型已通过Arc迁移到MySQL)

下面是连接器中可用函数的摘录-您必须进行一些研究,以了解它是如何绑定到模型的,以查看它是否可访问

MySQL.prototype.executeSQL = function(sql, params, options, callback) {

问题是,(如果我理解正确的话)由于环回的异步性质,我还不能在环回中使用事务。我刚刚看到了这一点,并将对此进行研究:或者,您可以将事务分解为多个部分,然后一次运行一个SQL命令,并用Javascript评估结果。
MySQL.prototype.executeSQL = function(sql, params, options, callback) {