云代码-在保存之前创建另一个对象的新实例
Parse.com Cloud Code - Creating new Instance of another object on before save
我有两个类,Groups和memberships。当一个组被创建时,我希望相应的成员也被创建。我尝试这样做:
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触发器for Group foruser xgzDnZ9h0A输入:{"原始":null, "更新":{"admin":{"objectId":"xgzDnZ9h0A"、"名称":"_User"、"__type":"指针"},"名字":"测试","公共":假}}结果:未定义的
不太确定错误是什么。我怎样才能像这样调试代码,以便轻松地隔离问题?
让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);
}
});
我将张贴工作代码,如果这没有帮助。
相关文章:
- javascript处理一个对象数组以获得一个新的对象数组
- 从自身的一个版本中创建新的JavaScript对象
- 用javascript创建另一个对象的实例
- JavaScript - 有没有办法动态创建对象的新实例
- 如何在Javascript中的对象数组的最后一个对象之后附加几个新对象
- 如何将一个单例传递给另一个对象,使该对象的所有实例都引用同一个单实例
- 使用模块模式时,如何创建对象的新实例
- 如何将当前日期动态添加到对象的新实例并将其推送到数组
- javascript 函数可以是另一个对象的类和实例吗?
- 两个具有相同值的对象,计算和更改一个对象的值.第二个也具有新的价值
- 从javascript中的未知对象创建新实例
- Javascript:在脚本后附加一个对象,并创建一个本地实例
- Array.prototype.fill() 带有对象传递引用而不是新实例
- 创建 createJS 对象的新实例每次都会返回相同的实例
- 在另一个对象中实例化一个对象
- 如何将自定义属性添加到 HTML 环境,该属性将默认为元素的每个新实例上的空对象
- 如何在页面中有一个jQuery播放器对象的多个实例(音频对象)
- 在 Unity 5.3 中向新实例化的游戏对象添加强制时出现问题
- 一个实例的对象和数组被主干模型的新实例引用
- 云代码-在保存之前创建另一个对象的新实例