Aftersave Cloud Function for Parse 增加另一个数据表中的值?
Posted
技术标签:
【中文标题】Aftersave Cloud Function for Parse 增加另一个数据表中的值?【英文标题】:Aftersave Cloud Function for Parse that increments value in another data table? 【发布时间】:2015-09-04 19:30:54 【问题描述】:我无法让我的 aftersave 云函数增加另一个数据表中的值。 Parse 文档在这方面有点混乱。
我有一个名为“CandidateVotes”的表,它为“候选人”的每次投票存储一行 - 当保存新的投票行时,我想增加存储在另一个名为“CategoryCandidates”的表中的总票数" 每个“候选人”都有一行。
所以相关信息:
投票表称为“CandidateVotes” 候选表称为“CategoryCandidates” CategoryCandidates 表中的总票数列称为“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,所以可能会在那里犯一个菜鸟错误。
提前感谢您的任何建议或意见!
【问题讨论】:
【参考方案1】:调试云代码肯定有点让人头疼,但你已经快到了。您想要访问“CategoryCandidates”类指针的 objectId,您当前正在使用 request.object.get("CategoryCandidates").objectID
来执行此操作。
问题是,当您查看日志以获取 afterSave 的输入时,指针的名称是“candidateID”,而不是“CategoryCandidates”。
尝试使用request.object.get("candidateID").objectID
干杯, 罗素
【讨论】:
非常感谢,罗素。通过该修复,我现在收到此错误:E2015-09-04T21:37:28.049Z]v10 after_save 为用户 7YfU2ETvb3 的 CandidateVotes 触发:输入:"object":"candidateID":"__type":"指针","className":"CategoryCandidates","objectId":"3C5KPJP3fh","createdAt":"2015-09-04T21:37:28.045Z","objectId":"tHSUbMMBiZ","updatedAt":" 2015-09-04T21:37:28.045Z","userID":"__type":"Pointer","className":"_User","objectId":"7YfU2ETvb3" 结果:TypeError:无法读取属性Object.query.get.error (main.js:12:43) 处 null 的“代码”...有什么想法吗? 对于上述评论,我的错误子句中的代码出现了该错误 - 当我删除它时,它就消失了。仍然遇到问题 - 但在这里解决了:***.com/questions/32409920/… - 再次感谢您的帮助!以上是关于Aftersave Cloud Function for Parse 增加另一个数据表中的值?的主要内容,如果未能解决你的问题,请参考以下文章