解析云代码查询永远不会返回任何内容

问题描述

我有一些解析云代码正在我的自托管服务器上运行,但我遇到了查询不执行任何操作的问题。我可以通过终端运行命令并取回数据,但是当我运行 query.find.. 没有任何反应。例如:

Parse.Cloud.job("getall",function(request,response) {
  var itemStatus = Parse.Object.extend('MovieStatus');
  var query = new Parse.Query(itemStatus);

  query.find({
    success: function(results) {
      console.log(results.length)
      response.success(results.length);
    },error: function(err) {
      response.error(err);
    },useMasterKey : true
  })
})

什么都没发生。没有错误没有反应。我添加了控制台日志以确保它至少被调用并且确实如此,但是由于某种原因,当我执行 query.find

我尝试了各种方法来找出问题所在,但这会影响我的所有云代码,因此它必须存在于其中。

解决方法

您使用的是旧语法。从 3.0 版开始,Parse Server 支持 async/await 样式。试试这个:

Parse.Cloud.job("getall",async request => {
  ​const { log,message } = request;
  const ItemStatus = Parse.Object.extend('MovieStatus');
  const query = new Parse.Query(ItemStatus);
  const results = await query.find({ useMasterKey: true });
  log(response.length);
  message(response.length);
})

这不是工作,也不是云代码功能。您可以使用 Parse Dashboard 调用此作业,您应该会在作业状态部分看到消息。