Loopback: получение изменений модели внутри хука модели

В модели PUT мне нужно выполнить пользовательскую проверку на основе ее исходного значения. Внутри хука модели beforeUpdate я могу получить доступ к «следующей» функции, объекту «тело запроса» (как аргументы beforeUpdate) и самой обновленной модели с помощью ключевого слова «this».

Есть ли способ получить нетронутую модель или ее изменения, не запрашивая ее из БД?

Возможно ли вообще обновить текущую модель внутри хуков модели (поскольку изменение «этих» свойств не вступает в силу)?


person IvanZh    schedule 29.10.2014    source источник


Ответы (1)


Отказ от ответственности: я разработчик LoopBack.

Есть ли способ получить нетронутую модель или ее изменения, не запрашивая ее из БД?

Нет, это невозможно.

Взгляните на код updateAttributes() в loopback-datasource-juggler/lib/dao.js, который вызывается, когда вы делаете запрос к PUT /models/:id:

inst.setAttributes(data);

inst.isValid(function (valid) {
  if (!valid) {
    if (cb) {
      cb(new ValidationError(inst), inst);
    }
  } else {
    inst.trigger('save', function (saveDone) {
      inst.trigger('update', function (done) {
        // etc.

Модель обновляется перед выполнением каких-либо хуков.

person Miroslav Bajtoš    schedule 13.11.2014
comment
Один вопрос. Есть ли способ получить доступ к заголовкам запросов, таким как accesstoken или userID, с помощью моделей? Пожалуйста, ознакомьтесь с вопросом здесь stackoverflow.com /вопросы/26927791/ - person Sebastian; 17.11.2014