Loopback:在模型钩子中获取模型更改

时间:2014-10-29 12:41:55

标签: loopbackjs strongloop

在模型PUT上,我需要根据其原始值进行自定义验证。 在beforeUpdate模型钩子里面,我可以通过'this'关键字访问'next'函数,'request body'对象(如beforeUpdate参数)和更新模型本身。

有没有办法获得原始模型或其更改,而无需从DB查询?

甚至可以更新模型钩子中的当前模型(因为更改'this'属性不会生效)?

1 个答案:

答案 0 :(得分:1)

免责声明:我是LoopBack开发人员。

  

有没有办法获得原始模型或其更改,而无需从DB查询?

不,那是不可能的。

查看loopback-datasource-juggler/lib/dao.jsupdateAttributes()的代码,当您向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.

在执行任何挂钩之前更新模型。