【问题标题】:Issue with Parse Cloud Code解析云代码的问题
【发布时间】:2015-01-28 01:42:12
【问题描述】:

我刚刚开始使用云代码指南https://parse.com/docs/cloud_code_guide 在 Parse 中工作,但卡在了 averageStars 项目中。 这是我的代码:

var Review = {
  "movie" : "The Matrix",
  "stars" : 5
};

Parse.Cloud.define("averageStars", function(request, response) {
  var query = new Parse.Query("Review");
  query.equalTo("movie", request.params.movie);
  query.find({
    success: function(results) {
      var sum = 0;
      for (var i = 0; i < results.length; ++i) {
        sum += results[i].get("stars");
      }
      response.success(sum / results.length);
    },
    error: function() {
      response.error("movie lookup failed");
    }
  });
});

但是,在我使用指南中的命令运行代码后,它只是返回空白 {}。

这是我对云代码的调用:

Maou-MacBook-Pro:MyCloudCode maou$ parse deploy
Uploading source files
Finished uploading files
New release is named v22 (using Parse JavaScript SDK v1.3.4)
Maou-MacBook-Pro:MyCloudCode maou$ curl -X POST \
>   -H "X-Parse-Application-Id: tnXgGeoY38YjEbAqcakncPFRkUzaBQ29v5tK1ir7" \
>   -H "X-Parse-REST-API-Key: 1YVzcl0aKATUUHZITsPasP11m0VNLrdVWiisE1YB" \
>   -H "Content-Type: application/json" \
>   -d '{"movie":"The Matrix"}' \
>   https://api.parse.com/1/functions/averageStars
{}

【问题讨论】:

  • 首先,由于++i,您永远不会访问索引 0 处的项目。那是错字吗?我总是喜欢使用 Crockford 的建议并使用for (var i = 0; i &lt; whatever; i = i + 1)。很明显它在做什么。
  • 您好 mbm29414,我试过了,但它有同样的错误。
  • 尝试加入一些console.log() 语句。您可能没有得到您期望的 results 数组。试试这个(就在var sum = 0; 之前):console.log("results: " + JSON.stringify(results));
  • 您是否真的将 Review 对象保存在 Parse 数据库中,还是仅存在于代码中? (因为它需要保存在数据库中才能使查询工作)。
  • 嗨 mbm29414,它什么也没打印。嗨 rickerbh,你能指导我如何将对象保存在 Parse 数据库中吗?我不确定我会正确编码。

标签: parse-platform parse-cloud-code


【解决方案1】:

我会提前返回一些测试数据来开始调试。例如:

启动函数:

response.success(request);

返回请求数据,查看数据流是否正常。

如果可行,则在成功函数中返回结果:

response.success(results);

... 以此类推,直到您确定出了什么问题。

【讨论】:

  • 刚刚意识到这个问题是从一月份开始的。哦,好吧。
猜你喜欢
  • 2016-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-19
相关资源
最近更新 更多