我无法使用我的后续云功能来增加另一个数据表中的值。 Parse文档在这方面有点令人困惑。
我有一张名为" CandidateVotes"为候选人"每个投票存储一行。 - 当保存新的投票行时,我想增加存储在名为" 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,所以可能会在那里犯一个菜鸟错误。
提前感谢任何建议或建议!
答案 0 :(得分:0)
调试云代码绝对有点令人头疼,但你几乎就在那里。您想要访问" CategoryCandidates"的objectId。类指针,您当前正在使用request.object.get("CategoryCandidates").objectID
来执行此操作。
问题是,当您查看日志以获取afterSave的输入时,指针的名称为" candidateID",而不是" CategoryCandidates"。
尝试使用request.object.get("candidateID").objectID
干杯, 罗素