2014-10-21 3 views
1

Parse.com의 경우 BeforeSaveCloudCode에 우선합니다. 사용자가 new 개체를 만드는 경우에만Parse.com 분별있는 업데이트 또는 BeforeSave에 삽입

Input: {"original":null,"update":{"password":"5428","phone_number":"56858","ACL":{"T1pXElsPPT":{"read":true,"write":true}},"config":"{}","creator":"T1pXElsPPT","name":"quarta prova"}} 
Result: Update changed to {"config":"{}","creator":"T1pXElsPPT","name":"quarta prova","password":"5428","phone_number":"56858","ACL":{"T1pXElsPPT":{"read":true,"write":true}}} 

내가 BeforeSave을 확인해야합니다, 그는 updatingold 하나하지 않을 때 : 이 내가 logs에서 볼 것입니다. 이것은 내가 지금까지 해왔 던 것입니다 :

Parse.Cloud.beforeSave("tracker", function(request, response) { 
var spaces = availableSpace(request.user.id); 
if (request.original != undefined && request.original === null) { 
    if (spaces == 0) { 
     response.error("No available spaces"); 
    } else if (spaces >= 1) { 
     response.success(); 
    } else if (spaces < 0) { 
     response.error("Lookup error"); 
    } 
} else { 
    response.success(); 
} 

}});

그러나 original 요청 객체에없는 (그래서 항상 response.success();로 이어지는, 정의되지 않은)

것으로 보인다 original를 확인하는 방법 또는이가 insert 또는 있는지 확인하는 또 다른 방법이 있나요 update?

답변

4

당신은 사용할 수 있습니다 Parse.Object.isNew()

Parse.Cloud.beforeSave("tracker", function(request, response) { 
    var spaces = availableSpace(request.user.id); 
    if (request.object.isNew()) { 

    if (spaces === 0) { 
     response.error("No available spaces"); 
    } else if (spaces >= 1) { 
     response.success(); 
    } else if (spaces < 0) { 
     response.error("Lookup error"); 
    } 

    } else { 
     response.success(); 
    } 
});