Triggers parse.com afterDelete触发器不';我不能完全工作
我有一个解析类Triggers parse.com afterDelete触发器不';我不能完全工作,triggers,parse-platform,parse-cloud-code,Triggers,Parse Platform,Parse Cloud Code,我有一个解析类注释。每个Comment都是由ParseUser提交的,我想在我的parse用户中跟踪他提交了多少条评论,因此我在parse-Cloud-code中创建了以下触发器: /* * ------------- AFTER SAVE */ Parse.Cloud.afterSave("Comment", function(request) { //if it's the first save if(!request.object.existed()) { //i
注释。每个Comment
都是由ParseUser
提交的,我想在我的parse用户中跟踪他提交了多少条评论,因此我在parse-Cloud-code中创建了以下触发器:
/*
* ------------- AFTER SAVE
*/
Parse.Cloud.afterSave("Comment", function(request) {
//if it's the first save
if(!request.object.existed()) {
//increment the User's comments
query = new Parse.Query(Parse.User);
query.get(request.object.get("createdBy").id, {
success: function(user) {
user.increment("comments");
user.save();
}, error: function(error) {
console.log("Error searching the User");
}
});
}
});
/*
* ------------- AFTER DELETE
*/
Parse.Cloud.afterDelete("Comment", function(request) {
//decrement the User's comments
console.log("The user who submitted the comment has the id: " + request.object.get("createdBy").id);
query = new Parse.Query(Parse.User);
query.get(request.object.get("createdBy").id, {
success: function(user) {
console.log("Retrieved the user. He has username: " + user.get("username"));
user.increment("comments", -1);
user.save();
}, error: function(error) {
console.log("Error searching the user - error afterDelete@Comment 2");
}
});
});
问题是afterSave
触发器可以工作,但是afterDelete
不能工作,我也不知道为什么。我可以检索用户
,因为两个控制台.log
显示哪个是正确的用户,但在增量(User,-1)
之后,我无法保存它。提前谢谢
编辑:
这里是用户
触发器:
/*
* ------------- BEFORE SAVE
*/
Parse.Cloud.beforeSave("User", function(request, response) {
var comments = request.object.get("comments");
if(comments == null || comments < 0)
request.object.set("comments", 0);
var itemSaved = request.object.get("itemSaved");
if(itemSaved == null || itemSaved < 0)
request.object.set("itemSaved", 0);
var username = request.object.get("username");
if(username.length < 6 || username.length > 20)
response.error("username must be longer than 6");
else {
response.success();
}
});
/*
* ------------- AFTER DELETE
*/
Parse.Cloud.afterDelete("User", function(request) {
query = new Parse.Query("Comment");
query.equalTo("createdBy", request.object.id);
query.find({
success: function(comments) {
Parse.Object.destroyAll(comments, {
success: function() {},
error: function(error) {
console.error("Error deleting related comments " + error.code + ": " + error.message);
}
});
},
error: function(error) {
console.error("Error finding related comments " + error.code + ": " + error.message);
}
});
});
/*
*------保存前
*/
Parse.Cloud.beforeSave(“用户”,函数(请求、响应){
var comments=request.object.get(“comments”);
if(comments==null | | comments<0)
request.object.set(“comments”,0);
var itemSaved=request.object.get(“itemSaved”);
if(itemSaved==null | | itemSaved<0)
request.object.set(“itemSaved”,0);
var username=request.object.get(“用户名”);
如果(username.length<6 | | username.length>20)
响应。错误(“用户名必须大于6”);
否则{
回答:success();
}
});
/*
*------删除后
*/
Parse.Cloud.afterDelete(“用户”,函数(请求){
query=newparse.query(“注释”);
query.equalTo(“createdBy”,request.object.id);
查询.查找({
成功:功能(评论){
Parse.Object.destroyAll(注释{
成功:函数(){},
错误:函数(错误){
console.error(“删除相关注释时出错”+error.code+”:“+error.message”);
}
});
},
错误:函数(错误){
console.error(“错误查找相关注释”+error.code+”:“+error.message”);
}
});
});
每一个Parse's,“如果您想对Parse JavaScript SDK中的预定义类(例如Parse.User)使用afterDelete,您不应该为第一个参数传递字符串。相反,您应该传递类本身。”