request.object.id 在 Cloud Code 的 afterSave() 中没有返回
request.object.id not returning in afterSave() in Cloud Code
Parse.Cloud.afterSave(function(request) {
var type = request.object.get("type");
switch (type) {
case 'inspiration':
var query = new Parse.Query("Inspiration");
break;
case 'event':
var query = new Parse.Query("Event");
break;
case 'idea':
var query = new Parse.Query("Idea");
break;
case 'comment':
break;
default:
return;
}
if (query) {
query.equalTo("shares", request.object.id);
query.first({
success: function(result) {
result.increment("sharesCount");
result.save();
},
error: function(error) {
throw "Could not save share count: " + error.message;
}
});
}
});
出于某种原因,request.object.id 没有从新创建的记录中返回对象 ID。我已经彻底测试了这段代码并将其隔离到 request.object.id 变量。我什至通过使用预先存在的对象 ID 成功 运行 它并且工作正常。我是否为对象 ID 使用了错误的变量?
在此先感谢您的帮助!
几周前遇到过这个问题。
原来是 Parse 最新的 Javascript SDK 中的错误。请查看您的 CloudCode 文件夹 - 它应该包含一个 global.json 文件,您可以在其中指定 JavaScript SDK 版本。默认情况下,它显示 "latest",将其更改为“1.4.2”并再次上传您的 CloudCode 文件夹。
如果您的云代码文件夹中缺少 global.json 文件,请查看 线程,我在其中描述了如何手动创建它。
感谢您的回复。我在 1.6.5 版中找到了另一个解决方法。我可能还应该提到,我对这段代码的用例是在将新关系添加到特定记录 (post) 时增加计数列(评论计数)。
我没有在我的关系 class(评论)上实现一个 afterSave 方法,而是在我的 class(Post)上实现了一个 beforeSave 方法并使用了 request.object.dirtyKeys () 获取我修改的列。从那里我检查我的脏键是否是评论,如果是我增加我的计数列。实际上效果很好。
Parse.Cloud.afterSave(function(request) {
var type = request.object.get("type");
switch (type) {
case 'inspiration':
var query = new Parse.Query("Inspiration");
break;
case 'event':
var query = new Parse.Query("Event");
break;
case 'idea':
var query = new Parse.Query("Idea");
break;
case 'comment':
break;
default:
return;
}
if (query) {
query.equalTo("shares", request.object.id);
query.first({
success: function(result) {
result.increment("sharesCount");
result.save();
},
error: function(error) {
throw "Could not save share count: " + error.message;
}
});
}
});
出于某种原因,request.object.id 没有从新创建的记录中返回对象 ID。我已经彻底测试了这段代码并将其隔离到 request.object.id 变量。我什至通过使用预先存在的对象 ID 成功 运行 它并且工作正常。我是否为对象 ID 使用了错误的变量?
在此先感谢您的帮助!
几周前遇到过这个问题。
原来是 Parse 最新的 Javascript SDK 中的错误。请查看您的 CloudCode 文件夹 - 它应该包含一个 global.json 文件,您可以在其中指定 JavaScript SDK 版本。默认情况下,它显示 "latest",将其更改为“1.4.2”并再次上传您的 CloudCode 文件夹。
如果您的云代码文件夹中缺少 global.json 文件,请查看
感谢您的回复。我在 1.6.5 版中找到了另一个解决方法。我可能还应该提到,我对这段代码的用例是在将新关系添加到特定记录 (post) 时增加计数列(评论计数)。
我没有在我的关系 class(评论)上实现一个 afterSave 方法,而是在我的 class(Post)上实现了一个 beforeSave 方法并使用了 request.object.dirtyKeys () 获取我修改的列。从那里我检查我的脏键是否是评论,如果是我增加我的计数列。实际上效果很好。