Aftersave Cloud Function for Parse 会增加另一个数据中的值 table?

Aftersave Cloud Function for Parse that increments value in another data table?

我无法让我的 aftersave 云函数增加另一个数据中的值 table。 Parse 文档在这方面有点混乱。

我有一个名为 "CandidateVotes" 的 table,它为 "candidate" 上的每个投票存储一行 - 当保存新的投票行时,我想增加总数票数存储在另一个名为 "CategoryCandidates" 的 table 中,每个 "candidate".

都有一行

于是相关资料​​:

这是我的 Parse aftersave 云函数:

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,所以可能会犯一个新手错误。

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

调试云代码肯定有点让人头疼,但您已经差不多了。您想要访问 "CategoryCandidates" class 指针的 objectId,您当前正在使用 request.object.get("CategoryCandidates").objectID 来执行此操作。

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

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

干杯, 罗素