解析云代码 - 为什么我不能删除Parse.Role?

时间:2015-12-07 20:24:23

标签: javascript parse-platform cloud-code

我无法弄清楚如何删除云代码中的Parse.Role。该指南说它们是Parse.Object的子类,并且具有所有相同的方法。但是我得到以下错误,为什么我试图删除一个:

Object [object Object]没有方法'destroy'

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语句验证“name”是否正确,因此查询应该找到正确的对象。我不知道还有什么可以尝试的。

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

1 个答案:

答案 0 :(得分:0)

使用匹配对象的数组来实现

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