有没有一种方法可以在不向 REST API 发出 HTTP 请求的情况下保存 ParseObject?

Is there a way to save ParseObject without make a HTTP request to the REST API?

我没有找到太多关于这个主题的信息,所以我想知道这是一项容易实现的任务,还是实际上不可能实现的。我的问题是我的服务器上有很多 HTTP 请求,即使只调用一次 Cloud 函数也是如此。所以我假设所有 object 更新/保存/查询都是使用 REST API 进行的。我有很多 HTTP 请求,有数百个请求超时,我想是因为它产生的巨大流量。

有没有办法通过直接向 MongoDB 执行查询来保存 ParseObject?如果目前不可能,如果已经有一些辅助函数将 ParseQuery 和 ParseObject 转换为 MongoDB 中的亲戚,以便我可以直接使用 MongoDB 驱动程序,你能给我一些提示吗?

目前减少 HTTP 请求流量对我的应用程序非常重要。

有什么想法吗?谢谢!

编辑: 这里有一个重现这个概念的例子:

制作云函数:

Parse.Cloud.define('hello', async (req, res) => {
  let testClassObject = new Parse.Object('TestClass');

  await testClassObject.save(null, {useMasterKey: true});

  let query = new Parse.Query('TestClass');

  let testClassRecords = await query.find({useMasterKey: true});

  return testClassRecords;
});

提出POST请求: POSThttp://localhost:1337/parse/functions/hello

使用 Wireshark 在端口 1337 上捕获 HTTP 流量:

您可以看到,对于 1 个 POST 请求,其他 2 个请求是由于保存/查询代码而发出的。我的目标是避免这两个 HTTP 调用,而是直接进行数据库调用,以便减少通过整个网络服务器堆栈的流量。

Link 到 Github 问题:https://github.com/parse-community/parse-server/issues/6549

Parse Server directAccess 选项应该可以为您带来神奇效果。请确保您正在像这样初始化 Parse Server:

const api = new ParseServer({
  ...
  directAccess: true
});
...