javascript - Parse.com Cloud 代码 - 在保存之前创建另一个对象的新实例

标签 javascript node.js parse-platform

我有两个类(class),小组和成员(member)资格。当一个小组建立后,我希望也能建立其相应的成员资格。我尝试这样做:

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: before_save triggered for Group for user xgzDnZ9h0A Input: {"original":null,"update":{"admin":{"objectId":"xgzDnZ9h0A","className":"_User","__type":"Pointer"},"name":"test","public":false}} Result: undefined

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

最佳答案

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

关于javascript - Parse.com Cloud 代码 - 在保存之前创建另一个对象的新实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23505207/

相关文章:

ruby-on-rails - 如何根据 Parse REST API 中的 session token 检索用户?

javascript - 如何仅向订阅两个 channel 的安装发送解析推送通知,而不是向其中一个/或?

javascript - Node.js + ajax,上传文件

javascript - 在另一个选项卡上执行命令

javascript - 正在运行的 Node 服务器接管整个服务器,并使其他项目目录无法访问,即使使用 node-http-proxy

node.js - 重新加载页面 10 次后 Express 停止工作

android - 使用 Firebase/Parse/PubNub 的跨平台文本、图像、视频 Chat for Android、iOS 和 Web

javascript - Django Javascript 表单验证

javascript - 将 RGB 转换为 HEX 失败

javascript - 每秒定期调用node.js函数