2017-02-16 3 views
0

내가 구문 분석 사용자 필드를 업데이트하려고 시도하고와 함수가 중간에 중지 :구문 분석 서버 클라우드 코드 업데이트 사용자

Parse.Cloud.define("modifyAdminStatus", function(request, response) { 

var userQuery = new Parse.Query(Parse.User); 
var isAdmin = request.params.adminStatus; 
console.log("isAdmin:" + isAdmin); 
userQuery.equalTo("username", request.params.username); 
userQuery.find({ useMasterKey: true, 
    success: function(user) { 
     console.log(user.length); 
     console.log("Got User") 
     console.log(user); 
     user.set("isAdmin", isAdmin); 
     console.log("Set Status"); 
     user.save(null, {useMasterKey: true, 
      success: function(user) { 
       response.success(); 
      }, 
      error: function(error) { 
       response.error(error.message); 
      } 
     }); 
    }, 
    error: function(error) { 
     response.error(error.message); 
    } 
}); 
}); 

내가 내가 내가 얻을 코드를 실행하면 구문 오류를 얻을 해달라고 :

1 
Got User 
[ ParseUser { _objCount: 2, className: '_User', id: '2vigcitsl6' } ] 

내 콘솔 그러나 관리자 상태를 설정하려고하면 코드가 중지됩니다. useMasterKey를 사용하여 실행 해 보았습니다. 그러나 그다지 아무것도하지 못했을 것입니다. 아마도 무언가를 놓치고 useMasterKey가 어디에 있어야할까요?

답변

1

대답은 :

query.find({ 
... code here 
}); 

대신 하나 개의 객체를 얻을 당신이 물건을 설정 할 수 있습니다 query.first 사용 (또는 배열에서 하나의 객체를 선택), 배열을 돌려줍니다.

0

사용자를 저장하려고하면 구문 분석에 두 개의 매개 변수가 필요합니다. 첫 번째는 변경 사항을 포함하는 객체 여야하며 두 번째는 저장 옵션이어야합니다.

그래서 귀하의 경우, 간단하게 변경하여 저장

사용 권한이 허용하는 경우, Parse.User 자격 useMasterKey에 열을 만들 것입니다 지금이 방법 user.save (null, {useMasterKey:true, success...})합니다.

+0

나는 그 변화를 만들었지 만 콘솔에서 ParseUser 라인을 지나치지는 않습니다. – trever

+0

이상합니다. 내가 생각할 수있는 유일한 점은 isAdmin 필드가 저장하려고하는 다른 유형의 값을 기다리고 있다는 것입니다. – EReid

+0

흠 맞다. isAdmin은 Bool이고, 나는 true/false를 설정하려고 시도하고있다. 나는 확실히 모든 것을 체크했다. – trever