解析之前删除用户

时间:2015-03-03 23:03:11

标签: javascript parse-platform

我在所有其他类(我创建的类)中使用了类似的代码,之前是删除& afterDelete可以正常使用它们。

但是对于类User,这两个函数似乎不起作用。删除User类中的对象有什么特别之处吗?还有另一种方法吗?

这是我的代码:

main.js

Parse.Cloud.define("delete_user", delete_object.deleteUser);
Parse.Cloud.beforeDelete("User", triggers.userBeforeDelete);
Parse.Cloud.afterDelete("User", triggers.userAfterDelete);

delete.js

function deleteObject(className, objectId) {
    Parse.Cloud.useMasterKey();
    var query = new Parse.Query(className);
    var promise = new Parse.Promise();

    query.get(objectId ,{
        success: function(result){
            var object = result;
            object.destroy({
                success: function(myObject) {
                    promise.resolve(myObject);
                // The object was deleted from the Parse Cloud.
                },
                error: function(myObject, error) {
                    console.log('Error couldnt delete the object ' + error.message);
                    promise.reject(error);
                }
            });  
        },
        error: function(newObject, error){
            console.log("Error couldnt get the object: " + error.code + " " + error.message);
            promise.reject(error);
        }
    });

    return promise;
}

function deleteUser(request, response) {
    Parse.Cloud.useMasterKey();
    console.log('Entered deleteUser');

    var objectId = request.params.objectId;
    var returnValue = deleteObject('User', objectId).then(function() {
        if (returnValue) {
            console.log('userDelete completed');
            response.success(true);
        } else {
            response.error(returnValue);
        }
    }, 
    function (error) {
        console.error('Request failed with response code ' + error.status);
        response.error(false);
    }); 
}

triggers.js

function userBeforeDelete(request) {
    console.log('Entered userBeforeDelete');
}

function userAfterDelete(request) {
    console.log('Entered userAfterDelete');
}

通常应该打印'已输入deleteUser'然后'输入userBeforeDelete'并在'userDelete completed'后打印

但它正在跳过“输入的用户删除删除”而只是打印出“已输入的删除用户”和'userDelete completed',它成功删除了用户。

我对其他类使用相同的代码,例如评论,卡片,内容,它们都可以正常工作。 我希望能够在删除之前和删除用户之后做一些事情。

1 个答案:

答案 0 :(得分:1)

而不是"用户" (对于一个名为User的程序员定义的类,你可以这样做),试试Parse.User,就像......一样。

Parse.Cloud.beforeDelete(Parse.User, function(request, response) {