CloudCode中的Parse.User错误141

时间:2015-10-02 12:32:02

标签: javascript parse-platform cloud-code

My Cloud Code定义了一些使查询需要_User对象的函数。根据我对Parse文档的理解,我可以使用Parse.User.current()

从当前请求中获取_User

问题在于它有效,有些则无效。它看起来不稳定。

这些方法似乎有问题:

  • Parse.User.become()
  • Parse.User.current()

它会在一秒内成功,在下一秒内会出现141错误。

重要提示:我正在使用REST api,通过CURL请求进行测试,并通过标题中的sessionToken进行用户验证。

Parse.Cloud.define("checkUser", function (request, response) {
  var currentUser = Parse.User.current();
  if (currentUser) {
    response.success( currentUser );
  } else {
    response.error("Error");
  }
});

我尝试了一种不同的方法(就像测试一样),发送sessionToken然后成为用户,但遇到了同样的问题。

 Parse.Cloud.define("checkUser", function (request, response) {
   Parse.User.become(request.params.token).then(function (user) {
    response.success( user );
  }, function (error) {
    response.error("Error[" + error.code + "] - " + error.message);
  });
});

我不确定Parse REST api。老实说,我正在考虑尝试另一种选择。有什么想法吗? TKS

更新:我尝试了 Jake T。建议也没有成功。我有一次正确的用户,突然不能了。有141个错误。我可以访问用户电子邮件,但无法使用它获取孔用户。

Parse.Cloud.define("checkUser3", function(request, response) {
  var user = request.user;
  user.fetch().then(
    function(user)
    {
        //Do stuff with the user now
        console.log("----checkUser3 - _User: " + user.get("email"));
        response.success( user );
    },
    function(error)
    {
        response.error("There was an error fetching your user: " + error.message);
    }
  );
});

日志:

  • v157用户ASDASDASD的云端功能checkUser3: 结果:{“__ type”:“对象”,“account_type ... 成功
  • 用户ASDASDASD的云功能checkUser3: 输入:{} 结果:未定义错误?
  • v157用户DFDFGDFG的云端功能checkUser3: 输入:{} 结果:未定义错误?

1 个答案:

答案 0 :(得分:0)

那是客户端代码。对于云代码,请使用var user = request.user;

request.user设置为发出云代码请求的用户。但是,从request.user返回的对象只是用户的“shell”,具有对象ID并在日期创建。如果您想要完整的用户对象,则必须获取此用户。使用承诺:

var user = request.user;
user.fetch().then(
    function(user)
    {
        //Do stuff with the user now
        response.success();
    },
    function(error)
    {
        response.error("There was an error fetching your user: " + error.message);
    }
);