环回“保存后”触发创建和更新,但我只想更新

Posted

技术标签:

【中文标题】环回“保存后”触发创建和更新,但我只想更新【英文标题】:loopback "after save" trigger both create and update, but I want update only 【发布时间】:2020-01-07 11:02:52 【问题描述】:
Product.observe('after save', function(ctx, next)
    productHelper.calProduct(ctx.instance);
    next();
  );

我有上述方法可以在产品更新后执行某些操作,但“保存后”也由创建触发。如何只通过更新而不是创建触发?

非常感谢!

环回": "^3.22.0" “连接器”:“postgresql”

【问题讨论】:

【参考方案1】:

您可以使用Remote hooks。

例如:

Product.afterRemote('updateUser', (ctx, userRes, next) => next() ...code .... )

updateUser 是我的远程方法。使用您的方法名称或原型更改它。

【讨论】:

感谢您的回复。也许我的问题不是很清楚。我真正想做的是找出如何区分 CREATE 操作和 UPDATE 操作。根据 LoopBack 3.x 文档,只有某些(内存、MongoDB 和 mysql)连接器支持 ctx.isNewInstance。对于其他连接器,它是未定义的。不幸的是,我使用的是不支持 isNewInstance 的 Postgresql。【参考方案2】:

终于发现Postgresql是支持isNewInstance的,问题解决了。

【讨论】:

以上是关于环回“保存后”触发创建和更新,但我只想更新的主要内容,如果未能解决你的问题,请参考以下文章

我只想在我的表的电子邮件列更新时制作一个表审计/影子表

创建将更新属性的触发器

何时触发没有 Window 的流分析作业

sql server 数据库里设置了当插入数据时,便触发器插入更新时间,但我导入数据时,触发器却没有工作。

在SQL2008中我要创建个更新(UPDATE)触发器

尝试解决 MYSQL 更新触发器的语法错误