【发布时间】:2014-09-25 16:34:59
【问题描述】:
我目前正在接近 Parse Cloud Code 并了解我正在检查一些基本示例。 我的解析数据库中有一个名为 MeetingObject 的类。这个类有一个字段“meetingDateAndTime”。 我创建了一个后台作业,用于检查早于当前时间的对象并销毁它们。我想在解析信息日志中看到被破坏对象的objectId,但我只能看到成功消息,而不是日志。我也尝试使用 result.objectId。也许我使用的“结果”变量不是数组。我做错了什么?
Parse.Cloud.job("deleteOldMeetings", function(request, status) {
var query = new Parse.Query("MeetingObject");
var currentDate = new Date();
query.lessThan("meetingDateAndTime", currentDate);
query.find({
success:function(results) {
for (var i = 0, len = results.length; i < len; i++) {
var result = results[i];
console.log("Destroyed object.objectId: "+result.get("objectId"));
result.destroy({});
}
status.success("Success.");
},
error: function(error) {
status.error("Uh oh, something went wrong.");
console.log("Failed!");
}
})
});
【问题讨论】:
-
对象被销毁了吗?
-
尝试将 console.log 语句移动到调用销毁的正上方。此外,获取对象属性的正确 parse.com 语法是使用 get:result.get("objectId"),而不是 result["objectId"]。您还应该考虑使用 destroyAll 方法,在一次操作中销毁对象列表。
-
我用您建议的更改编辑了代码并在解析中尝试过,日志是这样的:“Destroyed object.objectId: undefined”。我更喜欢使用简单的destroy而不是destroyAll,因为我还需要对创建会议的用户进行一些更改,所以最好在循环中进行这些更改。
-
好的。对于对象 id,我认为您可以只使用 id。结果.id。但是在你销毁它之后你就不能记录它了。这可能就是您在日志中看不到任何内容的原因。
-
它有效。非常感谢。如果你想写一个答案,我会接受它;)