2015-01-28 3 views
0

Я только начал работать в Parse, используя справочник облачного кода https://parse.com/docs/cloud_code_guide, но застрял в проекте averageStars. Это мой код:Проблема с Parse Cloud Code

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 
{} 
+0

Прежде всего, вы никогда не получаете доступ к элементу по индексу 0 из-за своего '++ i'. Это опечатка? Я всегда предпочитаю использовать совет Крокфорда и использовать 'for (var i = 0; i mbm29414

+0

Привет, mbm29414, я попробовал, но у него такая же ошибка. – maou

+0

Попробуйте ввести некоторые инструкции 'console.log()'. Возможно, вы не получите массив результатов, который вы ожидаете. Попробуйте это (непосредственно перед 'var sum = 0;'): 'console.log (" results: "+ JSON.stringify (results));'. – mbm29414

ответ

0

Я хотел бы начать отладку, возвращая некоторые тестовые данные на ранней стадии. например:

запустить функцию с:

response.success(request); 

вернуть данные запроса и увидеть, если поток данных работ.

Если это работает, то внутри функции успех, возвращать результаты:

response.success(results); 

... и так далее, пока вы не определите, что сломана.

+0

Только что понял этот вопрос с января. Ну что ж. –