Javascript 解析CloudCode函数不工作。我调用它时出错
CloudCode功能是:Javascript 解析CloudCode函数不工作。我调用它时出错,javascript,objective-c,xcode,parse-platform,cloud,Javascript,Objective C,Xcode,Parse Platform,Cloud,CloudCode功能是: Parse.Cloud.define('addFriend', function(request, response) { var userId = request.params.userId; var User = Parse.Object.extend('_User'), user = new User({ objectId: userId }); var currentUser = request.user; var
Parse.Cloud.define('addFriend', function(request, response) {
var userId = request.params.userId;
var User = Parse.Object.extend('_User'),
user = new User({ objectId: userId });
var currentUser = request.user;
var relation = user.relation("Friends");
relation.add(currentUser);
Parse.Cloud.useMasterKey();
user.save().then(function(user) {
response.success(user);
}, function(error) {
response.error(error)
});
});
当我用PFCloud调用从Xcode调用它时。。。。我在控制台中得到下一个错误:
[Error]: ReferenceError: parent is not defined
at e.n.value (Parse.js:13:7510)
at main.js:10:14 (Code: 141, Version: 1.8.2)
这意味着实际问题是该关系没有父关系。它应该已经有了'user'变量作为父变量,因为我正在调用user.relation(“Friends”),这就是文档所说的:“您很少应该手动设置父变量,因为您很可能要调用Parse.Object.relation('key')。”这就是我正在做的
更新
即使是这段代码也会出现同样的错误:
Parse.Cloud.define("addFriend", function(request, response) {
Parse.Cloud.useMasterKey();
var currentUser = request.user;
var relation = currentUser.relation("Friends");
relation.add(currentUser);
});
更新2:
用户JSON
{
"FriendRequests": {
"__type": "Relation",
"className": "_User"
},
"Friends": {
"__type": "Relation",
"className": "_User"
},
"createdAt": {
"__type": "Date",
"iso": "2015-09-10T17:29:03.181Z"
},
"sessionToken": "r:KkmTu7xRjTEFpl0vcANVf0xXH",
"updatedAt": {
"__type": "Date",
"iso": "2015-09-10T17:29:03.181Z"
},
"username": "bogdan12",
"objectId": "BmbNRxCyau"
}
关系JSON
{
"__type": "Relation",
"className": "_User"
}
尝试替换:
var User = Parse.Object.extend('_User'),
user = new User({ objectId: userId });
与:
user = new Parse.User.createWithoutData(userId);
编辑:
这对我来说很好。。。以下是我尝试过的:
云:
Parse.Cloud.define('addFriend', function(request, response)
{
var currentUser = request.user;
var userId = request.params.userId;
var user = new Parse.User.createWithoutData(userId);
var relation = user.relation("Friends");
relation.add(currentUser);
Parse.Cloud.useMasterKey();
user.save().then(function(user) {
response.success(user);
}, function(error) {
response.error(error)
});
});
客户:
[PFCloud callFunctionInBackground:@"addFriend" withParameters:@{@"userId":@"s8BMHtnqSZ"} block:^(id object, NSError *error) {
if (!object || error) {
LogError(error, @"Calling addFriend failed.");
} else {
LogInfo(@"Calling addFriend succeeded.");
}
}];
也许您应该在此处提交错误报告:在编辑关系之前,您可能需要先获取用户。请查看更新。。。这可能是一个Parse.Relation错误吗?你能记录currentUser和Relation的内容(使用toJSON())并告诉我错误是哪一行吗?E2015-09-13T15:56:01.819Z]v55为用户BmbNRxCyau运行云函数editUser,输入:{“userId:“14xJE7rFOQ”}结果:ReferenceError:Parse.js:13:7510未在e.n.value处定义父项在main.js:10:14
cd
进入您的云代码目录,运行parse jssdk 1.5.0
和parse deploy
。如果您使用的是windows,则可能会有所不同,请检查此处: