我在Loopback应用程序中看到一个奇怪的行为。我将尝试在下面描述它。
我有一个BaseModel,我的所有模型都继承了它的'access'和'beforeSave'上的操作挂钩,以便出于多租户的原因填充列。它需要访问当前用户,我按如下方式获取它:
COUNT
然后,我的一个模型需要在第二个模型中插入记录。 Model1和Model2具有一对一的关系。我为它添加了一个远程方法,我在事务中执行如下操作:
var httpContext = require('loopback').getCurrentContext();
var accessToken = httpContext.get('accessToken');
const userId = accessToken && accessToken.userId;
由于未定义accessToken,因此在运行Model2.create步骤时挂钩失败。
如果我从模型调用中删除{transaction:transaction},则会成功创建两个记录,但不会按预期使用数据库事务。
我错过了什么?
答案 0 :(得分:0)
尝试在环回中使用事务,但没有成功,因为来自环回端的不完整或非描述性文档。
最好使用http://knexjs.org/来构建查询以及事务。
这是一个相同的参考链接。 How To Implement ACID Transactions in Loopback http://knexjs.org/#Transactions