Как рабочий поток петлевых крючков происходит внутри

#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 и большинство модельных крючков устарели в пользу рабочих крючков.

Подводя итог

  1. Users.beforeRemote('create', ..)
  2. Users.create
  3. Users.observe('before save',..)
  4. и т.д.

И не используйте Model.beforeSave .