*Simple* Parse Cloud Code query failure "TypeError: Cannot call method 'get' of undefined\n retrieve that info "

*Simple* Parse Cloud Code query failure "TypeError: Cannot call method 'get' of undefined\n retrieve that info "

几个小时以来,我一直在尝试做一些非常简单的事情,但我不知道自己做错了什么。我很简单地尝试通过 Cloud Code 从我的 Parse 数据集中查询第一个人的用户名,然后我想把它带到我的 iOS 应用程序中。尽管进行了所有尝试,但它似乎并没有奏效。下面你会找到我的代码。

Parse.Cloud.define("userName", function(request,response){

    var query = new Parse.Query(Parse.User);
    query.equalTo("username", request.params.username)
    query.first({
        success: function(getUserName) {
            var userString = getUserName.get("username");
            response.success(userString);
        },
        error: function(error) {
            alert("Error: " + error.code + " " + error.message);
        }
        });
    });





[PFCloud callFunctionInBackground:@"userName" withParameters:@{} block:^(NSString *result, NSError *error) {
        if (!error){
            NSLog(result);
        }
    }];

我也不应该知道除了 "username :"

之外,我不确定在参数部分要放什么

编辑:此外,当我尝试部署 Parse Cloud 代码时,我得到 "TypeError: Cannot call method 'get' of undefined\n"

查看您的云代码,您希望 request.params.username 包含一个值,您可以使用该值通过 usernameUser class 中查找] 柱子。我通常通过键访问 params 对象的属性(我不确定这是否需要,我只知道它对我有用)。尝试改变

query.equalTo("username", request.params.username)

query.equalTo("username", request.params["username"]);

然后,您需要将该数据导入云函数。您的 Objective-C 代码传递了一个空参数块,因此在那里查找任何内容都将一无所获。将您的 PFCloud 呼叫更改为

[PFCloud callFunctionInBackground:@"userName" withParameters:@{@"username": @"theusernameyouwanttolookup"} block:^(NSString *result, NSError *error) {

希望你能有更好的运气。

想通了。我的错误来自于对 Javascript 的理解不足。

下面的云代码得到了我想要的。

Parse.Cloud.define("userName", function(request,response){
var query = new Parse.Query(Parse.User);
query.equalTo("username", request.params.username);
query.first({
    success: function(object) {
        var userString = request.params.username;
        response.success(userString);
    },
    error: function(error) {
        alert("Error: " + error.code + " " + error.message);
    }
    });
});

我犯的错误是我试图在无法访问所述方法的对象上使用“.get”方法。奇怪的是我试图用 request.object.get("username") 做同样的事情,但显然请求对象也没有访问 .get 方法的权限(令人困惑,因为 Parse 文档似乎表明它在其示例中这样做)。因此,结合下面的 rickerbh 的 objective-c 代码执行上述操作得到了我想要的结果。

如果有人能在此处 post 与 Parse 的云代码相关的 .get 方法的性质,将会有所帮助。干杯。