2015-03-25 3 views
0

Я использую код Cloude для создания запроса немного сложнее, но я не могу получить доступ, свойство, которое автоматически создается Parse "createdAt", heres my code :Cant access property "createdAt" в Cloud Code Parse Framework

Parse.Cloud.define("get_time", function(request, response) 
{ 
    var query = new Parse.Query("Test"); 
    var today = new Date(); // gets today 
    var thirdDaysAgo = new Date(today - 1000 * 60 * 60 * 24 * 30); // gets 30 days ago 
    var threeHoursAgo = new Date(today - 1000 * 60 * 60 * 1); // gets 3 hours ago 

    query.greaterThan("createdAt", thirdDaysAgo); 
    query.greaterThan("createdAt", threeHoursAgo); 
    query.descending("createdAt"); 

    query.find({ 
    success: function(results) 
    {  
      if(results.length > 0) 
      { 
       var finalArray = []; 
       for (i = 0; i < results.length; i++) 
       { 
        var dataCreated = results[i].get("createdAt"); 
        finalArray.push(dataCreated); 
       } 
       response.success(finalArray); 
      } 
    }, 
    error: function() 
    { 
     response.error("time lookup failed"); 
    }}); 
}); 

ОкончательныйArray, заполняется только нулевыми объектами.

ответ

1

Во-первых, вы не можете использовать greaterThan дважды в одном и том же поле, последний из которых будет придерживаться.

Во-вторых, вы говорите, что результаты заполнены нулевыми объектами, поэтому он возвращает массив результатов?

Это results, который заполнен нулями, или это finalArray. Вы должны знать, что objectId, createdAt и modifiedAt не доступны через get("columnName"), они являются собственными свойствами, поэтому вместо этого вы должны использовать results[i].createdAt. Вот почему finalArray будет заполнен нулевыми значениями.