【问题标题】:Error: Parse Objects not allowed here错误:此处不允许解析对象
【发布时间】:2015-11-09 13:30:19
【问题描述】:

当我尝试运行计数功能时,我得到了

错误:此处不允许解析对象

E2015-11-09T12:36:10.778Z]v184 Ran cloud function count with:
  Input: {}
  Result: Error: Parse Objects not allowed here
    at n (Parse.js:16:1063)
    at Parse.js:16:1927
    at Array.map (native)
    at n (Parse.js:16:1904)
    at n (Parse.js:16:1995)
    at r.default (Parse.js:16:2422)
    at Object.o.default.setCloudController.run (Parse.js:13:2159)
    at Object.n [as run] (Parse.js:13:1730)
    at e.query.find.success (main.js:10:19)
    at e.<anonymous> (Parse.js:14:28224)

搜索结果引导我到这个question,但是所有的教程都提到了这种方式发送参数。这段代码过去运行良好。

计数功能:

Parse.Cloud.define('count', function(request, response) {

var query = new Parse.Query('MyS');
  query.equalTo("Notify", true);
  query.notEqualTo ("MainEventCode", '5');

  query.find({
    success: function(results) {
      Parse.Cloud.run('http', {params : results}).then(
        function(result) {
          console.log('httpResponse is : ' + result);
          response.success('Done !');
        }, function(error) {
          console.log('Error while RUN !' + error);
      });
    },
    error: function(error) {
      response.error(error);
    }
  });
});

http 功能:

Parse.Cloud.define('http', function(request, response) {

var query = new Parse.Query(Parse.Installation);
.
.
.
}

【问题讨论】:

    标签: javascript parse-platform parse-cloud-code


    【解决方案1】:

    我假设results 是PFObjects 的数组。不幸的是,您不能发送PFObjects 或包含PFObjects 作为参数的数组。相反,您需要发送一个对象 ID 数组,并在您的 http 函数中检索实际对象。

    【讨论】:

      【解决方案2】:

      我建议将对象 id 传递给函数。然后在云函数中:

      var Movie = Parse.Object.extend("MovieClass");
      
      Parse.Cloud.define("averageStars", async (request) => {
      
        //Creating the ParseObject
        var pointer = Movie.createWithoutData(request.params.obj_id);
      
        //Creating a query
        const query = new Parse.Query("ReviewClass");
        query.equalTo("field_pointer_movie",pointer);
      
        const results = await query.find();
        let sum = 0;
        for (let i = 0; i < results.length; ++i) {
          sum += results[i].get("stars");
        }
        return sum / results.length;
      });
      

      这个doc帮帮我

      【讨论】:

        猜你喜欢
        • 2013-04-15
        • 1970-01-01
        • 2020-03-31
        • 2012-06-13
        • 2016-07-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多