在 Parse.Cloud 代码中调用 Parse.Query 时无法找到对象

Posted

技术标签:

【中文标题】在 Parse.Cloud 代码中调用 Parse.Query 时无法找到对象【英文标题】:Parse.Query unable to find objects when called within Parse.Cloud code 【发布时间】:2019-01-13 16:15:05 【问题描述】:

我很难弄清楚为什么我的查询在从 Parse.Cloud 触发器调用时不起作用。

我想在保存特定类的对象后定义一些逻辑(在我的例子中,该类是“消息”)。

我正在cloud/main.js 中测试以下简单代码:

const conversationQuery = new Parse.Query('Conversation');
conversationQuery.get('myIdHere',  useMasterKey: true )
    .then(conversation => 
        console.log('### Conversation is', conversation);
    )
    .catch(err => 
        console.log('### Error is', err);
    );

Parse.Cloud.afterSave('Message', req => 
    const conversationQuery1 = new Parse.Query('Conversation');

    conversationQuery1.get('myIdHere',  useMasterKey: true )
    .then(conversation => 
        console.log('>>> Conversation is', conversation);
    )
    .catch(err => 
        console.log('>>> Error is', err);
    );
);

当我启动解析服务器实例时,控制台会记录以下内容:

### Conversation is  myObjectHere 

但是,当我保存“消息”类的任何对象时,我得到一个错误:

>>> Error is  Error: Object not found. <stacktrace here>, message: 'Object not found.', code: 101 

我希望它记录与服务器启动时检索到的完全相同的对象,但它返回一个“101 找不到对象”错误。

我认为我根据文档配置了所有内容,但有可能我错过了一些东西。

我正在使用 Parse Server 3.1.3 和 Parse JS SDK 2.1.0

【问题讨论】:

是的,应该可以,对吧?您应该打开详细日志记录并仔细查看正在发出的请求,您应该能够看到错误。如果没有,请在此处发布(当然要适当编辑),我会看一看。 如何启用详细日志记录?我查看了 Parse Dashboard 中的日志,但他们只说“找不到对象”。 @ArthurCinader,谢谢,我现在可以看到了!我有几个 Parse Server 实例正在运行,不知何故我的 afterSave 触发器 ParseServer A 上的 Conversation 类,调用 ParseServer B 中的类查询。即服务器 A 在/serverA/ URL 下,B 在/serverB/ 下,但在服务器 A 上定义的触发器在 GET 请求中调用 url=/serverB/classes/Conversation。有点奇怪。 您是否有任何机会在云代码中的任何位置重置或调用 Parse.initialize? @flovilmart,不,我不会在index.jscloud/main.js 文件中调用Parse.initialize。此外,云代码仅传递给一个 Parse 实例,服务器 B 的实例没有任何云代码。我将深入研究这一点,并在 GitHub 上打开一张合适的票。目前我只运行 Parse Server 的一个实例,它可以完美运行。 【参考方案1】:

https://github.com/parse-community/parse-server#logging 这取决于您如何启动解析服务器,但通常类似于:VERBOSE="1" parse-server

【讨论】:

以上是关于在 Parse.Cloud 代码中调用 Parse.Query 时无法找到对象的主要内容,如果未能解决你的问题,请参考以下文章

删除 Parse Cloud Code 中的其他文件

Parse Cloud Code 中的调用函数

将 Parse Server 减少为仅 Parse Cloud

response.error不是Parse Cloud Code中的函数

如何将 Parse Cloud Code 中的值返回到我的 iOS 应用程序?

使用 Parse Cloud 代码将文件保存在 Heroku 文件系统中?