回环挂钩工作流程如何在内部发生

How loopback hooks work flow happens internally

我是环回的新手,当我在环回中看到钩子(远程、观察和模型)时,我感到很惊讶。

我想知道哪个钩子先触发 如果我使用所有 hooks.I 都尝试过此代码段。但是我没有得到哪个钩子先触发。

Users.beforeRemote('create', (ctx, modelInstance, next) => signup(ctx, modelInstance, next, Users));

Users.observe('before save', validateBeforeSave);

Users.beforeSave = testFunction

谁能解释一下。

谢谢

Users.beforeRemote('create', ..) 首先被调用,因为它在 Users.create 之前被调用,因为它的名称表明

(在环回中,远程是可以远程调用的模型函数,例如使用 REST API。当你创建一个 POST api/Users 时,你实际上创建了一个 远程 调用 Users.create)

然后调用远程方法Users.create。在此方法内的某个时刻,数据将持久保存到数据库中(= 保存)。所以就在数据被保存之前, Users.observe('before save',..) 被调用了。

最后,Users.beforeSave 是模型钩子,与 Users.observe('before save',..) 在同一时刻被调用。

注意: Users.beforeSave 和大多数模型钩子 are deprecated 支持操作钩子。

总结

  1. Users.beforeRemote('create', ..)
  2. Users.create
  3. Users.observe('before save',..)
  4. 等等

并且不要使用 Model.beforeSave