解析云工作

时间:2015-04-24 09:12:40

标签: parse-platform cloud-code

我在解析云中有一份工作,在工作中我有一个Parse.Cloud.run,当我运行此函数工作正常并且解析数据库是更新时,但在云中作业状态显示失败。这是我的代码:

提前致谢。

Parse.Cloud.job("updateTopsThreeJob", function(request, status) {

Parse.Cloud.useMasterKey();

var query = new Parse.Query("_User");

query.descending("followersOfMe");
query.limit(3);

query.find({
    success: function(results) {

        var TestJS   = Parse.Object.extend("testJS");
        var test     = new TestJS();
        var listTops = [];

        for (var i = 0; i < results.length; i++) { 

            var object = results[i].get("username");
            listTops.push(object);

        }

        Parse.Cloud.run("updateTopsThree", {objects: listTops}, {
            success: function(result) {

                status.success("Migration completed successfully.");
                response.success(result)
            },
            error: function(error) {
                status.error("Uh oh, something went wrong.");
            }
        });

        response.success(listTops);
    },
    error: function(error) {
        response.error("failed");
    }
});    
});

Parse.Cloud.define("updateTopsThree", function(request, response) {
var tops = Parse.Object.extend("testJS");
var query = new Parse.Query(tops);

query.get(ObjIDs.topsThreeID(), {
    success: function(topsThree) {

        topsThree.set("topsThree", request.params.objects);
        topsThree.save();

        response.success(topsThree);
    },
    error: function(object, error) {
        response.error(error);
    }
});
});

2 个答案:

答案 0 :(得分:0)

Parse Cloud Code的运行方式与其他任何javascript文件非常相似。为了声明在解析.js文件中调用另一个函数,例如在这种情况下,您不需要使用Parse语法定义函数。像普通的Javascript函数一样定义和调用它。

用它来调用Parse.job中的函数:

updateTopsThree(topThreeObjects);

定义功能:

function updateTopsThree(topObjects) {

  var tops = Parse.Object.extend("testJS");
  var query = new Parse.Query(tops);

    query.get(ObjIDs.topsThreeID(), {
        success: function(topsThree) {

            topsThree.set("topsThree", topObjects);
            topsThree.save();

           response.success(topsThree);
        },
         error: function(object, error) {
            response.error(error);
        }
     });
}

答案 1 :(得分:0)

谢谢,但最后我解决了我的问题如下:我已经创建了这样的云函数:

Parse.Cloud.define("setLikesInDB", function(request, response) {

    var query = new Parse.Query("testJS");

    query.get(ObjIDs.topsLikesID(), {
        success: function(topsThree) {

            topsThree.set("topsLikes", "likes");
            topsThree.save();
            response.success(topsThree)
        },
        error: function(object, error) {
            response.error(error);
        }
    });
});  

然后进入我的Parse.Cloud.Job我称之为云函数:

Parse.Cloud.run('setLikesInDB', {obj : listTops}, {
    success: function(result) {
        response.success(result);   
    },
    error: function(error) {
           response.error('some error')
    }
});

这种方式很好。
我希望这有助于其他人。