保存更新所有实例之前的环回

时间:2017-09-07 23:24:52

标签: hook instance loopbackjs strongloop

在保存UpdateAll之前,嘿嘿快问题

假设我有一个客户模型,有多个订单。在保存客户之前的操作挂钩监控我正在尝试自动创建订单。诀窍是我在做客户UpdateAll时尝试这样做

基于文档,我看到无法获取当前客户实例的ID

但有没有办法做ctx.instance.orders.create(data);

之类的事情

2 个答案:

答案 0 :(得分:1)

我相信这样的情况,使用persist钩子会更有意义。您可以通过ctx.currentInstance.id访问该ID。此挂钩由将数据持久保存到数据源的操作触发,包括更新。



MyModel.observe('persist', function(ctx, next) {
  if (ctx && ctx.currentInstance.id) {
    // create order here
  } 
  next();
});




答案 1 :(得分:0)

updateAllupdate的别名函数。

你可以尝试类似的东西,

Customer.observe('before save', (ctx, next) => {
    if (ctx.instance && ctx.instance.id ) {
      // create order here
    }
    next();
  });

ctx.instance.id只有在你通过时才可以使用。

Customer.update({id: 1}, {name: 'New Name'}) - 在这种情况下ctx.instance.id将可用。

Customer.update({name: 'New Name'}) - 在这种情况下,ctx.instance.id无法使用。此外,这将更新所有客户的名称。