Javascript Parse request.object.get(“KEY”)始终返回未定义的

Javascript Parse request.object.get(“KEY”)始终返回未定义的,javascript,ios,parse-platform,parse-cloud-code,Javascript,Ios,Parse Platform,Parse Cloud Code,我这里有个奇怪的问题。我有一个以Parse.com作为后端构建的项目(当连接到数据库时,使用cloudcode验证一些事情)。一切都正常运转 但问题来了。另一个开发人员向我报告说,出现了一些问题,因为他每次尝试在CloudCode中调用request.object.get('KEY'),都会得到“undefined”。这个开发人员使用和我完全相同的代码库 所以我决定去看看。虽然使用我的解析帐户,每个应用程序都可以正常工作(即使是新创建的应用程序),但使用其他开发人员的解析帐户,我们创建的新应用程

我这里有个奇怪的问题。我有一个以Parse.com作为后端构建的项目(当连接到数据库时,使用cloudcode验证一些事情)。一切都正常运转

但问题来了。另一个开发人员向我报告说,出现了一些问题,因为他每次尝试在CloudCode中调用
request.object.get('KEY')
,都会得到“undefined”。这个开发人员使用和我完全相同的代码库

所以我决定去看看。虽然使用我的解析帐户,每个应用程序都可以正常工作(即使是新创建的应用程序),但使用其他开发人员的解析帐户,我们创建的新应用程序似乎没有一个使用完全相同的代码。更奇怪的是,创建一个全新的解析帐户和一个新的应用程序会产生同样的错误,而我的个人帐户和应用程序仍然可以正常工作

那么问题是什么呢?我们使用的是CloudCode,下面是beforeSave方法的示例代码(javascript):

Parse.Cloud.beforeSave('Activity', function(request, response) {
   var currentUser = request.user;
   var objectUser = request.object.get('fromUser');
   if(!currentUser || !objectUser) {
     response.error('An Activity should have a valid fromUser.');
   } else {
     response.success();
   }
});
每次
request.object.get('KEY')
返回
undefined
,在上传
PFObject
之前,对于我以前在iOS代码中定义的每个键。 请注意,我的个人帐户一切正常

我已经看到了线程,但是删除ACL并没有起到作用
request.object.get()
保持未定义状态,而
request.user
是为每个测试的解析帐户定义的,我的帐户除外

编辑1

在上传之前,我还查看了activity对象,所有字段都已正确设置

编辑2


完全删除云代码后,对象被正确地上传到Parse,所有字段都是通过iOS客户端设置的。因此,Parse的云代码似乎有问题,但一旦对象通过云代码,它就会释放所有字段。

最终我能够解决这个问题。这肯定是Parse的Javascript SDK中的一个bug。我将global.json中的Javascript SDK版本改为“1.4.2”而不是“最新”,并将其上传到cloudcode文件夹,一切恢复正常

您还可以测试其他版本,也许v1.5.0也可以,但当我发现v1.4.2运行良好时,我没有尝试更新的版本

编辑

所以,我发现,解析一定改变了他们的命令行工具中的某些东西。如果您使用最新版本的命令行工具创建CloudCode文件夹,则global.json文件似乎不再存在。但是,您可以手动创建它并将完整的文件夹上载到您的解析应用程序

这就是我的CloudCode文件夹的外观,例如: CloudCode文件夹包含三个子文件夹

•云-包含云代码文件

•config-包含global.json文件

•public-包含index.html文件

global.json文件包含以下代码行:

{
  "global": {
    "parseVersion": "1.4.2"
  },
  "applications": {
    "YOUR_PARSE_APPS_NAME": {
      "applicationId": "YOUR_APP_ID",
      "masterKey": "YOUR_APP_MASTER_KEY"
    },
    "_default": {
      "link": "YOUR_PARSE_APPS_NAME"
    }
  }
}

你能展示一下
request.object
中的内容吗?
request.object
没有定义,它根本不存在(对于其他开发人员来说,我的帐户仍然很好),但是
request.user
存在。当对象没有通过cloudcode时,一切都在那里,所有字段都设置正确。干得好!请确保将此报告为错误,以便分析团队可以修复它。我有相同的错误,您是如何更改global.json的?我在哪里可以找到它?在.parse.local隐藏文件中找到了它,并更改了1.4.2,一切都很好。非常感谢,救了我一天。:)感谢您指出这一点,我更改了我的答案,为您提供了关于丢失的global.json文件的提示。它现在位于.parse.local中。更改那里的版本对我也很有用,谢谢。