为什么即使不是Parse.Query总是成功的?

时间:2016-01-17 13:53:53

标签: javascript curl parse-platform

在parse.com Cloud Code中,我有一个非常简单的功能" IsNameAlreadyTaken"但无论如何"用户名"我通过了,#34;成功"总是执行。那是为什么?

Parse.Cloud.define("IsNameAlreadyTaken", function(request, response) {
    Parse.Cloud.useMasterKey();
    var query = new Parse.Query(Parse.User);
    console.error("Please log request.params.username: " + request.params.username + "<++++");
    query.equalTo("username", request.params.username);
    query.first({
        success: function(user) {
            response.success("user was found." + user);
        },
        error: function(error) {
            response.error("Could not find user." + error);
        }
    });
});

我在这里测试已使用的用户名:

curl -X POST \
-H "X-Parse-Application-Id: uOXz....rPt" \
-H "X-Parse-REST-API-Key: GAv...SmK" \
-H "Content-Type: application/json" \
-d '{"username": "UsernameAlreadyTaken"}' \
https://api.parse.com/1/functions/IsNameAlreadyTaken

并且回复很好:

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100       34 --:--:-- --:--:-- --:--:--    68{"result":"user was found. [object Object]"}

问题是确切的行为是当用户名不存在时:

curl -X POST \
-H "X-Parse-Application-Id: uOXz....rPt" \
-H "X-Parse-REST-API-Key: GAv...SmK" \
-H "Content-Type: application/json" \
-d '{"username": "nonExistedUsername"}' \
https://api.parse.com/1/functions/IsNameAlreadyTaken

并且回复是一样的: WTF !!!

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  100         61 --:--:-- --:--:-- --:--:--   105{"result":"user was found. undefined"}

知道发生了什么事吗?这是Parse.com中的一个错误吗?

1 个答案:

答案 0 :(得分:1)

狂野猜测:我认为当用户不存在时,您会收到user === undefined信息(如果存在,则会获得用户对象),因此您可以获得所需的信息。

只有在连接失败或类似的情况下才可以调用

error:回调。在许多情况下,这是JavaScript中的标准处理。