Node.js 保存后的环回更新模型

Node.js 保存后的环回更新模型,node.js,loopbackjs,strongloop,Node.js,Loopbackjs,Strongloop,我想在“保存后”钩子中更新上次插入/更新的文档(行),而不创建这样的新实例: Model.observe('after save', function (ctx, next) { ctx.someProperty = 'Foo'; ctx.update(); }); 怎么可能?我不知道你说的“更新”模型是什么意思。据我所知,泛型模型类上没有update()函数。如果您正在查找updateAttribute,则有关该功能的文档是 但是,假设您的问题只是“如何访问环回挂钩内部的观察

我想在“保存后”钩子中更新上次插入/更新的文档(行),而不创建这样的新实例:

Model.observe('after save', function (ctx, next) {
    ctx.someProperty = 'Foo';
    ctx.update();
});

怎么可能?

我不知道你说的“更新”模型是什么意思。据我所知,泛型模型类上没有
update()
函数。如果您正在查找
updateAttribute
,则有关该功能的文档是

但是,假设您的问题只是“如何访问环回挂钩内部的观察模型?”那么答案是实例存储在
ctx.instance
中,而不是作为
ctx
变量本身返回。参见示例

例如


如果您可以更详细地描述您试图通过
update()
函数实现的功能,我将尝试解决这个问题还要注意,上面的代码可能会导致无限循环——因为updateAttribute调用本身会触发“after save”钩子——这也是我不太确定您真正在问什么的另一个原因。

我编辑了我的问题。是的,你关于我的问题的假设是正确的,你关于无限循环的暗示也是正确的。有没有办法防止调用“保存后”触发器来解决无限循环问题?@viam嗯,这可能是设计问题。为什么特别要更新模型?你能在保存之前更新你想要更新的属性,而不是在事后再进行更新吗?我的目的是用你的答案更新一个文档行。无限循环是另一个问题。Tnx@viam我认为重新思考代码组织会使您受益匪浅。为什么要在保存前钩子上更新模型?它是否可以在其他地方更新而不会导致循环?假设我需要将TableA.id保存到TableB.AID中,然后根据TableB.id中最后插入的id更新TableA.BID。换句话说,每两个表都有“belongsTo”关系(TableB.AID属于TableA,TableA.BID属于TableB)。
Model.observe('after save', function (ctx, next) {
    ctx.instance.updateAttributes({someProperty: 'Foo'})
});