我通过strongloop的环回提供REST Api。
我需要通过一些调用来添加模型实例的锁定:
POST /User/{id}/tryLock
返回一个Lock实例,其中包含一些附加信息:锁是否成功,哪个用户锁定了对象等等。
我正在使用loopback-connector-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实现,以便我可以将它用于选定的模型。
谢谢!
答案 0 :(得分:0)
使用的东西是Remote Hooks
User.beforeRemote( "tryLock", function( ctx, modelInstance, next) {
//put code here
}
有一种方法可以通过loopback-connector-mysql执行SQL语句。
所以我的直觉是看你是否可以将SQL语句写入其中(假设您的用户模式已绑定到MySQL并且用户模型已通过Arc迁移到MySQL中)。
以下是连接器中可用功能的摘录 - 您必须进行一些研究,以了解它如何与模型绑定,以确定它是否可访问。
MySQL.prototype.executeSQL = function(sql, params, options, callback) {