0

在模型 PUT 上,我需要根据其原始值进行自定义验证。在 beforeUpdate 模型钩子中,我可以通过“this”关键字访问“next”函数、“请求主体”对象(作为 beforeUpdate 参数)和更新模型本身。

有没有办法在不从数据库查询的情况下获得原始模型或其更改?

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

4

1 回答 1

1

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

有没有办法在不从数据库查询的情况下获得原始模型或其更改?

不,那是不可能的。

看一下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.

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

于 2014-11-13T14:21:45.750 回答