2014-09-10 2 views
0

내 iOS 앱에 구름 코드 기능을 사용하고 있습니다. 나는 Error : TypeError : Object에 'set'메서드가 없습니다.

var moment = require("moment"); 

Parse.Cloud.define("registerActivity", function(request, response) { 
    var user = request.user; 
    user.set("lastActive", new Date()); 
    user.save().then(function (user) { 
     response.success(); 
    }, function (error) { 
     console.log(error); 
     response.error(error); 
    }); 
}); 

내가 같이 호출 아이폰 OS에서

...

[PFCloud callFunction:@"registerActivity" withParameters:@{}]; 

가 왜이 오류가 않아 ...이 코드와 클라우드 함수를 호출 무엇입니까?

Error: TypeError: Object has no method 'set' 
+0

'request.user' 객체에'set' 메소드가 있습니까? 아니면 간단하게'user.lastActive = new Date()'를 시도하려고합니까? –

+0

잘 모르겠습니다. 나는이 코드를 클라우드 코드에 사용할 필요가 없다면이 자바 스크립트를 전혀 사용하지 않을 것이다. 나는 JS로하고있는 모든 것에 대해서 절반 밖에 확신하지 못한다. 그렇다면 설정 방법이 있습니까? 그것해야합니다. iOS에서는 [[PFUser currentUser] setObject : [NSDate date] forKey : @ "lastActive"];'를 수행하면됩니다. JS와 동일한 작업을 수행하고 오류가 발생하지 않도록하려면 어떻게해야합니까? –

답변

1

반드시 파싱 개체를 클라우드 기능을 통해 전달할 수는 없으며 파싱 개체가 파싱 개체로 남아있을 수 있습니다. 더 나은 해결책은 객체 ID를 전달한 다음 사용자 객체에 대한 포인터를 만들고 그 객체 ID를 설정하는 것입니다. 그런 다음 업데이트하고 저장하십시오 :

var moment = require("moment"); 

Parse.Cloud.define("registerActivity", function(request, response) { 
    var user = new Parse.User() 
    user.id = request.userId; 
    user.set("lastActive", new Date()); 
    user.save().then(function (user) { 
     response.success(); 
    }, function (error) { 
     console.log(error); 
     response.error(error); 
    }); 
}); 
+0

하하 당신이 옳습니다. 그것은 내가 일주일 전에 갔던 것이고 매력처럼 작동합니다. 그래서 당신은 맞습니다. 조금 늦었습니다. 그러나 시험을 위해 웃는 얼굴을 보게됩니다! –

+0

감사합니다. 결국 여기에 답변하는 것이 낫습니다. 동일한 문제로 다른 사람들을 도울 수 있습니다. –

+0

"왜 파스 객체가 파스 객체로 남을 것이라고 기대할 수 없는지"에 대해 자세히 설명해 주시겠습니까? 지금이 문제가 두 번 발생했습니다. 그러나 이것이 어떤 이유인지 찾을 수 없으므로주의해야 할 부분이 무엇인지 잘 모릅니다. –

관련 문제