我是 loopback 的新手,当我在环回中看到钩子(远程,观察和模型)时,我感到很惊讶。
我想知道哪个钩子触发器首先如果我使用所有钩子。我已经尝试过这段代码片段。但我没有先得到哪个钩子。
Users.beforeRemote('create', (ctx, modelInstance, next) => signup(ctx, modelInstance, next, Users));
Users.observe('before save', validateBeforeSave);
Users.beforeSave = testFunction
任何人都可以解释。
由于
答案 0 :(得分:1)
Users.beforeRemote('create', ..)
,因为它在Users.create
之前调用,因为其名称表示
(在环回中,远程是一个模型的功能,可以使用REST API远程调用。当你创建一个POST api/Users
时,你实际上是一个远程致电Users.create
)
然后调用远程方法Users.create
。在此方法中的某些时刻,数据将持久保存到数据库(= save)。因此,在保存数据之前,会调用Users.observe('before save',..)
。
最后,Users.beforeSave
是一个模型钩子,并且会在Users.observe('before save',..)
的同一时刻被调用。
注意:Users.beforeSave
和大多数模型挂钩are deprecated都支持操作挂钩。
总结
Users.beforeRemote('create', ..)
Users.create
Users.observe('before save',..)
并且不要使用Model.beforeSave
。