访问Parse.com Cloud Code之前的原始字段保存功能

时间:2015-06-28 13:37:01

标签: javascript parse-platform cloud-code

最终目标是使用Cloud Code中的beforeSave函数检测现有Parse对象与传入更新之间的更改。

通过parse.com提供的Cloud Code日志,可以看到beforeSave的输入包含一个名为original的字段,另一个名为update

Cloud Code日志:

Input: {"original": { ... }, "update":{...}

我想知道我们是否以及如何访问原始字段以便在保存之前检测更改的字段。

请注意,我已经尝试了几种方法来解决这个问题但没有成功:

  • using(object).changedAttributes()
  • using(object).previousAttributes()
  • 在使用新数据更新之前获取现有对象

关于request.object.changedAttributes()的说明: 在beforeSave和afterSave中使用时返回false - 有关详细信息,请参阅下文:

记录before_save - 为了便于阅读而进行了总结:

Input: { original: {units: '10'}, update: {units: '11'} }
Result: Update changed to { units: '11' }
[timestamp] false <--- console.log(request.object.changedAttributes())

记录相应的after_save

[timestamp] false <--- console.log(request.object.changedAttributes())

1 个答案:

答案 0 :(得分:2)

<{1}}的问题。它似乎总是回答错误 - 或者至少在Pattern.compile中,它将合理地需要。 (参见here以及其他类似帖子)

这是一个通用的解决方法,可以做changeAttributes应该做的事情。

pattern.matcher

当我通过客户端代码或数据浏览器将changedAttributes()beforeSave实例上的数字列)从32更改为1222时,日志显示:

  

I2015-06-30T20:22:39.886Z]更改了attributes = false

     

I2015-06-30T20:22:39.988Z] DIY改变了属性=   [{ “属性oldValue”:32, “NEWVALUE”:1222}]