用于Parse的Aftersave Cloud函数会增加另一个数据表中的值吗?

时间:2015-09-04 19:30:55

标签: swift parse-platform cloud-code

我无法使用我的后续云功能来增加另一个数据表中的值。 Parse文档在这方面有点令人困惑。

我有一张名为" CandidateVotes"为候选人"每个投票存储一行。 - 当保存新的投票行时,我想增加存储在名为" CategoryCandidates"的另一个表中的总投票数。每个"候选人都有一行"。

所以相关信息:

  • 投票表名为" CandidateVotes"
  • 候选人表名为" CategoryCandidates"
  • CategoryCandidates表中的总投票数列称为"投票"

这是我的Parse后续云功能:

Parse.Cloud.afterSave("CandidateVotes", function(request) {
  query = new Parse.Query("CategoryCandidates");
  query.get(request.object.get("CategoryCandidates").objectID, {
    success: function(candidate) {
      candidate.increment("votes");
      candidate.save();
    },
    error: function(error) {
      console.error("Got an error" + error.code + " : " + error.message);
    }
  });
});

保存新投票时,这是我在云代码日志中收到的错误:

E2015-09-04T15:49:23.553Z]v9 after_save triggered for CandidateVotes as master:
  Input: {"object":{"candidateID":{"__type":"Pointer","className":"CategoryCandidates","objectId":"HOBbNA690z"},"createdAt":"2015-09-04T15:49:09.216Z","objectId":"RlmvJjG04t","updatedAt":"2015-09-04T15:49:23.549Z","userID":{"__type":"Pointer","className":"_User","objectId":"7YfU2ETvb3"}}}
  Result: TypeError: Cannot read property 'objectID' of undefined
    at main.js:6:53

Parse文档(https://parse.com/docs/js/guide#cloud-code-aftersave-triggers)有一个例子,但我不清楚小写" post"在他们的数据模式中指的是。我也不是很精通JS,所以可能会在那里犯一个菜鸟错误。

提前感谢任何建议或建议!

1 个答案:

答案 0 :(得分:0)

调试云代码绝对有点令人头疼,但你几乎就在那里。您想要访问" CategoryCandidates"的objectId。类指针,您当前正在使用request.object.get("CategoryCandidates").objectID来执行此操作。

问题是,当您查看日志以获取afterSave的输入时,指针的名称为" candidateID",而不是" CategoryCandidates"。

尝试使用request.object.get("candidateID").objectID

干杯, 罗素