Javascript 解析云代码:查询后删除所有对象

Javascript 解析云代码:查询后删除所有对象,javascript,parse-platform,parse-framework,Javascript,Parse Platform,Parse Framework,场景 我有一个应用程序,允许用户创建帐户,但也允许用户的用户删除他们的帐户。在删除他们的帐户后,我有一个云代码功能,可以删除用户所发的所有“帖子”。我使用的云代码是 //Delete all User's posts Parse.Cloud.define("deletePosts", function(request, response) { var userID = request.params.userID; var query = new Parse.Query(Par

场景

我有一个应用程序,允许用户创建帐户,但也允许用户的用户删除他们的帐户。在删除他们的帐户后,我有一个云代码功能,可以删除用户所发的所有“帖子”。我使用的云代码是

//Delete all User's posts
Parse.Cloud.define("deletePosts", function(request, response) {

    var userID = request.params.userID;

    var query = new Parse.Query(Parse.Post);
    query.equalTo("postedByID", userID);
    query.find().then(function (users) {

        //What do I do HERE to delete the posts?

        users.save().then(function(user) {
        response.success(user);
        }, function(error) {
        response.error(error)
        });

    }, function (error) {

         response.error(error);

    });

});
问题

一旦我对用户的所有帖子进行了查询,我如何删除它们?(请参阅:
//我在这里做什么?

您可以使用

Parse.Object.destroyAll(users); // As per your code – what you call users here are actually posts
见:

也可以考虑使用PARSE.CUROM.DEFALSE解析。用户(如果这是你所说的“删除帐户”)来进行清理,比如这些。


哦,为了完整起见,您不需要在destroyAll()之后执行save()例程。

在您的“我在这里做什么…”注释下方的行内更新:

注:

  • 您不需要调用save()方法,所以我去掉了它

  • 当然,这只是个人偏好的问题,但您可能希望选择一个比“用户”更有意义的参数名,因为您实际上不是在查询用户,而是在查询帖子(恰好与用户相关)



  • 这是正确的,但效率不高,因为它会消耗大量请求。Parse.Object.destroyAll(用户);这是一个更好的解决方案
    Parse.Cloud.define("deletePosts", function(request, response) {
        var userID = request.params.userID;
    
        var query = new Parse.Query(Parse.Post);
        query.equalTo("postedByID", userID);
        query.find().then(function (users) {
    
            //What do I do HERE to delete the posts?
            users.forEach(function(user) {
                user.destroy({
                    success: function() {
                        // SUCCESS CODE HERE, IF YOU WANT
                    },
                    error: function() {
                        // ERROR CODE HERE, IF YOU WANT
                    }
                });
            });
        }, function (error) {
             response.error(error);
        });
    });