在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中的一个错误吗?
答案 0 :(得分:1)
狂野猜测:我认为当用户不存在时,您会收到user === undefined
信息(如果存在,则会获得用户对象),因此您可以获得所需的信息。
error:
回调。在许多情况下,这是JavaScript中的标准处理。