#node.js #loopbackjs
#node.js #loopbackjs
Вопрос:
Я новичок в петле, я был удивлен, когда увидел крючки (удаленные, наблюдаемые и моделируемые) в петле.
Я хочу знать, какой крючок срабатывает первым, если я использую все крючки.Я пробовал этот фрагмент кода. Но я не понял, какой крючок запускается первым.
Users.beforeRemote('create', (ctx, modelInstance, next) => signup(ctx, modelInstance, next, Users));
Users.observe('before save', validateBeforeSave);
Users.beforeSave = testFunction
кто-нибудь может объяснить.
Спасибо
Комментарии:
1. Не стесняйтесь отмечать мой ответ как принятый, если вы чувствуете, что ваша проблема решена. Приветствия
2. Спасибо @Overdrivr
Ответ №1:
Users.beforeRemote('create', ..)
вызывается первым, потому что он вызывается раньше Users.create
, как указывает его имя
(В loopback remote — это функция модели, которую можно вызывать удаленно, например, с помощью REST API. Когда вы делаете POST api/Users
, вы фактически выполняете удаленный вызов Users.create
)
Затем вызывается удаленный метод Users.create
. В какой-то момент внутри этого метода данные будут сохранены в базе данных (= сохранить). Поэтому непосредственно перед сохранением данных Users.observe('before save',..)
вызывается.
Наконец, Users.beforeSave
это модельный крючок, и он будет вызван в тот же момент, что Users.observe('before save',..)
и .
Примечание: Users.beforeSave
и большинство модельных крючков устарели в пользу рабочих крючков.
Подводя итог
Users.beforeRemote('create', ..)
Users.create
Users.observe('before save',..)
- и т.д.
И не используйте Model.beforeSave
.