2015-12-07 65 views
0

我不知道如何删除云代码中的Parse.Role。指南说,它们是Parse.Object的子类,并具有所有相同的方法。但我得到以下错误,为什么我尝试删除一个:解析云代码 - 为什么我不能删除Parse.Role?

对象的翻译:有没有方法“破坏”

Parse.Cloud.afterDelete("Project", function(request) { 

    Parse.Cloud.useMasterKey(); 

    var query = new Parse.Query(Parse.Role); 
    query.equalTo("name", "hasSound_" + request.object.id); 

    query.find().then(function(role) { 

     if(typeof role === 'undefined') { 
      console.log("role is undefined, cannot delete"); 
     } 
     else { 
      role.destroy(); 
     } 

    }).then(function(success) { 
     console.log("role deleted: hasSound_" + request.object.id); 
    }, function(error) { 
     console.log("error deleting role"); 
    }); 

}); 

我有一些的console.log语句验证“名”是正确的,所以查询应该找到正确的对象。我不知道还有什么可以尝试的。

此外,我的角色是以项目的ID为名称命名的。所以每个项目都有一个叫做“hasSound_ [项目ID]”的角色。当我删除一个项目时,我不再需要与之相关的角色。我的意思是我可以将未使用的项目留在数据库中,但这看起来很浪费。

回答

0

find()满足数组的匹配对象。由于您的角色是唯一的,因此您可以安全地将find()更改为first()。或者您可以继续使用find(),但将结果视为数组。

+0

谢谢,这样的菜鸟错误。我在其他地方使用first(),将在此处使用它。 –