Я перенес свое приложение Parse в Heroku и MongoLab. Все работает нормально, за исключением моих запросов облачного кода. Какой бы запрос я ни вызывал, вызывается блок ошибки, а объект ошибки не определен.
Пример запроса:
Parse.Cloud.beforeDelete("Project", function(request, response) {
Parse.Cloud.useMasterKey();
var projectId = request.object.id;
var Project = Parse.Object.extend("Project");
var query = new Parse.Query(Project);
query.get(projectId, {
success: function(project) {
//do some stuff with project
response.success("Success!");
},
error: function(error) {
console.log("Error Querying Deleted Project");
response.error("Error!");
}
});
});
Не только этот запрос, другие запросы тоже не работают. Эти запросы работали при размещении на Parse.com. Я их не менял.
Изменить:
Итак, я изменил свой синтаксис с error: function(error)
на error: function(model, error)
и в итоге получил ошибку, которую я немного исследовал, и теперь я нахожусь в точке, где я понимаю, что мой класс Project (которым я пытаюсь манипулировать выше) никогда не получает никакого вида разрешения. К нему не привязана ни роль, ни ACL.
Вот как я создаю свою роль:
var roleName = "hasSound_" + ident;
var projectRole = new Parse.Role(roleName, new Parse.ACL());
projectRole.getUsers().add(creator);
return projectRole.save().then(function(role) {
var acl = new Parse.ACL();
acl.setReadAccess(role, true); //give read access to Role
acl.setWriteAccess(role, true); //give write access to Role
project.setACL(acl);
project.save();
});
И вот плохой запрос, который я получаю при попытке создать Parse.Role:
Mar 04 14:39:32 ancient-lake-41070 heroku/router: at=info method=POST path="/parse/classes/_Role" host=ancient-lake-41070.herokuapp.com request_id=82af3849-842a-406f-8a4b-5f573e08a1e1 fwd="54.145.36.110" dyno=web.1 connect=0ms service=6ms status=400 bytes=578