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".
都有一行
于是相关资料:
- 票数table被称为"CandidateVotes"
- 候选人table被称为"CategoryCandidates"
- CategoryCandidates table 中的总票数列称为 "votes"
这是我的 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
干杯,
罗素
我无法让我的 aftersave 云函数增加另一个数据中的值 table。 Parse 文档在这方面有点混乱。
我有一个名为 "CandidateVotes" 的 table,它为 "candidate" 上的每个投票存储一行 - 当保存新的投票行时,我想增加总数票数存储在另一个名为 "CategoryCandidates" 的 table 中,每个 "candidate".
都有一行于是相关资料:
- 票数table被称为"CandidateVotes"
- 候选人table被称为"CategoryCandidates"
- CategoryCandidates table 中的总票数列称为 "votes"
这是我的 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
干杯, 罗素