【发布时间】: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 < 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