2017-02-02 12 views
0

Я обновляю некоторый ранее рабочий код облака на новый Parse Server. Я обновил его новым методом передачи useMasterKey.Parse Server Cloud Code destroyAll сбой с бесполезной ошибкой

Похоже, что часть запроса работает, поскольку массив resultStations заполняется, но удаление не выполняется.

Parse.Cloud.afterDelete("Workout", function(request) { 

query = new Parse.Query("WorkoutStation"); 

query.equalTo("workout", request.object); 

query.find({ 

    success: function(resultingStations) { 

     console.log('Found these to delete:' + resultingStations); 

     Parse.Object.destroyAll(resultingStations, { 
      success: function() { 
       console.log('Did successfully delete'); 
      }, 
     error: function(error) { 
      console.error("Error deleting related workout stations " + error.code + ": " + error.message); 
     } 
     }, { useMasterKey: true }); 

    }, 

    error: function(error) { 
     console.error("Error finding related workout stations " + error.code + ": " + error.message); 
    } 

}, { useMasterKey: true }); 
}); 

Если я смотрю на приборной панели объекты в resultingStations все еще там, и в журнале сервера я получаю ошибку:

«Ошибка при удалении связанных тренировки станции 600 не определено»

600 похоже, не является допустимым кодом ошибки.

Error code list here

ответ

1

Глядя на определения Parse.Error на моем локальном сервере (Разбор \ node_modules \ синтаксического анализа \ Lib \ узел \ ParseError.js), код 600 указывает на агрегатный ошибку, как показано ниже:

/** 
* Error code indicating that there were multiple errors. Aggregate errors 
* have an "errors" property, which is an array of error objects with more 
* detail about each error that occurred. 
* @property AGGREGATE_ERROR 
* @static 
* @final 
*/ 
ParseError.AGGREGATE_ERROR = 600; 

Это объясняет, почему error.message не определено. error.errors должен быть массивом ошибок, которые могут дать вам некоторые намеки на то, что происходит не так.

Что касается основной причины, у меня есть ощущение, что это может быть связано с использованием useMasterKey. Я перешел на использование обещаний совсем недавно, но если я правильно помню, это должно быть что-то вроде этого (для раздела destroyAll):

Parse.Object.destroyAll(resultingStations, { 
      success: function() { 
       console.log('Did successfully delete'); 
      }, 
      error: function(error) { 
       console.error("Error deleting related workout stations " + error.code + ": " + error.message); 
      }, 
      useMasterKey: true 
     }); 
+0

Вы прибили его, спасибо! Я думаю, у меня будет проблема с моей реализацией useMasterKey для запроса, но в этом конкретном случае я работал с объектами, которые являются общедоступными, так что не получило ошибку. –

 Смежные вопросы

  • Нет связанных вопросов^_^