Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Parse.com云代码-保存前在上创建另一个对象的新实例_Javascript_Node.js_Parse Platform - Fatal编程技术网

Javascript Parse.com云代码-保存前在上创建另一个对象的新实例

Javascript Parse.com云代码-保存前在上创建另一个对象的新实例,javascript,node.js,parse-platform,Javascript,Node.js,Parse Platform,我有两个班级,团体和会员资格。当一个团体成立时,我希望它的相应成员也成立。我尝试这样做: Parse.Cloud.beforeSave("Group", function(request, response) { var name = request.object.get("name"); if (!name) { response.error("A Group must have a name"); } else { if (!(

我有两个班级,团体和会员资格。当一个团体成立时,我希望它的相应成员也成立。我尝试这样做:

Parse.Cloud.beforeSave("Group", function(request, response) {   
    var name = request.object.get("name");

    if (!name) {
        response.error("A Group must have a name");
    } else {
        if (!(/^\w+$/i.test(name))){
            response.error("Only letters and numbers, please.");
        }
        var query = new Parse.Query("Group");
        query.equalTo("name", name);
        query.first({
            success: function(object) {
                if (object) {
                    response.error("A group with this name exists.");
                } else {
                    createMembershipForGroup(request.object, Parse.User);
                    response.success();
                }
            },
            error: function(error) {
                response.error("Could not validate Uniqueness");
            }
        });
    }
});

createMembershipForGroup = function(group, user) {
    var MembershipClass = Parse.Object.extend("Membership");
    var membership = new MembershipClass();

    membership.set("group", group);
    membership.set("user", user);
    membership.save(null,{
      success:function(membership) { 
        response.success(membership);
      },
      error:function(error) {
        response.error(error);
      }
    });
}
我收到一个错误回复,内容如下:

E2014-05-06T21:40:10.740Z]v30:为组触发保存之前 用户xgzDnZ9h0A输入: {“原始”:null,“更新”:{“管理”:{“对象ID”:“xgzDnZ9h0A”,“类名”:“_用户”,“_类型”:“指针”},“名称”:“测试”,“公共”:false} 结果:未定义


不太确定错误是什么。我怎样才能像这样调试代码,以便轻松地隔离问题

让beforeSave只处理验证,并将您的成员代码移动到afterSave。问题可能是您试图存储与尚未保存的对象的关系(因为您在beforeSave中,该对象还没有objectId)

问题是您试图调用异步函数并在等待完成之前离开

createMembershipForGroup(request.object, Parse.User);//Calling async func
response.success();//Leaves beforeSave function
您应该在查询的成功响应中编写createMembershipForGroup函数,并在此处返回response.success()方法

membership.save(null,{
  success:function(membership) { 
    response.success(membership); // this should be response of beforeSave
  },
  error:function(error) {
    response.error(error);
  }
});
我会张贴工作代码,如果这没有帮助