解析服务器云代码 - 以前工作的查询都返回未定义的错误

时间:2016-03-04 01:45:35

标签: heroku cloud-code parse-server

我将我的Parse应用程序移动到了Heroku和MongoLab。除了我的云代码查询,一切正常。无论我调用哪个查询,都会调用错误块,并且错误对象未定义。

示例查询:

Parse.Cloud.beforeDelete("Project", function(request, response) {

    Parse.Cloud.useMasterKey();

    var projectId = request.object.id;

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

        query.get(projectId, {
            success: function(project) {

               //do some stuff with project
                response.success("Success!"); 

            },
            error: function(error) {
                console.log("Error Querying Deleted Project");
                response.error("Error!"); 
            }

        });

});

不只是这个查询,其他查询也不起作用。这些查询在Parse.com上托管时正在运行。我没有改变它们。

修改

所以我将语法从error: function(error)更改为error: function(model, error)并且我最终得到了一个错误,我稍微研究了一下,现在我知道我的Project类了(我试图在上面操纵)从未获得任何形式的许可。没有附加角色或ACL。

以下是我创建角色的方式:

var roleName = "hasSound_" + ident;
var projectRole = new Parse.Role(roleName, new Parse.ACL());
projectRole.getUsers().add(creator); 

return projectRole.save().then(function(role) {

    var acl = new Parse.ACL();
    acl.setReadAccess(role, true); //give read access to Role
    acl.setWriteAccess(role, true); //give write access to Role

    project.setACL(acl);            
    project.save();

  });

这是我在尝试创建Parse.Role时遇到的错误请求:

Mar 04 14:39:32 ancient-lake-41070 heroku/router: at=info method=POST path="/parse/classes/_Role" host=ancient-lake-41070.herokuapp.com request_id=82af3849-842a-406f-8a4b-5f573e08a1e1 fwd="54.145.36.110" dyno=web.1 connect=0ms service=6ms status=400 bytes=578

1 个答案:

答案 0 :(得分:1)

您的问题可能是您不应该将Parse.Cloud.useMasterKey()与解析服务器一起使用。相反,您应该在查询中设置主密钥,例如query.get(projectId, {useMasterKey: true, success: fun...}}

那说错误对象为空是奇怪的。应该有消息unauthorized

编辑:请尝试使用此语法来处理错误函数:error: function(model, error) { console.log(error); }