【发布时间】:2014-01-30 09:31:19
【问题描述】:
我想检查我是否没有为活动的参加状态保存重复条目 - 所以在 BeforeSave 中我正在检查活动 rsvp 是否尚未输入 - 如果有,我想知道它是否需要要被更新。如果是这样,我想进行更新而不是创建新的 RSVP 条目。
这是我的代码 - 即使在 BeforeSave 中进行了最简单的更新,我似乎也无法让它工作。
Parse.Cloud.beforeSave("Rsvps", function(request, response) {
var eventid = request.object.get("eventid");
var userid = request.object.get("userid");
var rsvp_status = request.object.get("rsvp_status");
var Rsvps = Parse.Object.extend("Rsvps");
var query = new Parse.Query(Rsvps);
query.equalTo("eventid", eventid);
query.equalTo("userid", userid);
query.first({
success: function(object) {
if (object) {
// response.error("An RSVP for this event already exists.");
request.object.id = object.id;
request.object.set('rsvp_status', "attending");
request.object.save();
} else {
response.success();
}
},
error: function(error) {
response.error("Error: " + error.code + " " + error.message);
}
});
});
我已经尝试了这么多变种,但没有任何乐趣 - 这是我最近的尝试。
【问题讨论】:
-
你试过用 Parse.Cloud.define 代替 Parse.Cloud.beforeSave
-
我最初尝试定义一个函数,但也无法让它工作。
-
我更新了答案中的代码。我希望它会生成更好的错误消息。它还会将数字打印到 Parse.com 日志中,以便我们可以看到函数在死前的进度。 -aoffer
-
我添加了一个检查以防止未终止的递归。立即尝试代码。
-
如果代码对你有用,你会接受我提供的答案吗?