在 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.js
和cloud/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 Server 减少为仅 Parse Cloud
response.error不是Parse Cloud Code中的函数