在Sails的Waternline中,我需要能够将先前的值与新的值进行比较,并在一定条件下分配新的属性。例如:

beforeUpdate: function(newValues, callback) {
   if(/* currentValues */.age > newValues.age) {
     newValues.permission = false;
   }
}

如何访问currentValues

最佳答案

我不确定这是否是最好的解决方案,但是您可以通过执行一个简单的findOne请求来获取当前记录:

beforeUpdate: function(newValues, callback) {
  Model
    .findOne(newValues.id)
    .exec(function (err, currentValues) {
      // Handle errors
      // ...

      if(currentValues.age > newValues.age) {
        newValues.permission = false;
      }

      return callback();
    });
}

07-28 10:06