Parse의 Cloud Code를 사용하여 서버 측 코드를 설명하여 무작위 객체를 가져오는 방법

Parse 서비스를 사용하면 클라우드의 데이터베이스 기능을 간단하게 활용할 수 있다.
또한 Cloud Code를 사용하는 경우 서버측 처리를 JavaScript로 기술할 수도 있습니다.
매우 편리한 Parse이지만 지금은 Parse가 데이터베이스에서 무작위 대상의 API를 되돌려주지 않아서 유감입니다.
따라서 Cloud Code를 사용하여 데이터베이스에 있는 무작위 객체를 가져오는 방법을 시도해 보았습니다. 다음은 프로그램과 코드에 대한 설명입니다.
나는 무작위 상대와 인터넷 대결을 하는 게임 등에 활용할 수 있다고 생각한다.
클라우드 코드를 사용하지 않고 터미널부터 데이터베이스 행수를 계산하는 API 방법도 있지만, 문제는 통신 횟수가 축소 가능한 것이 아니라 늘었다는 것이다.
따라서 Cloud Code를 사용하면 한 번의 통신으로 완성할 수 있을 뿐만 아니라 신축할 수 있는 코드도 가장 좋다고 생각합니다.
클라우드 코드에 관해서는 기본적인 사용법은 공식 홈페이지를 따라가면 된다고 생각합니다.
https://www.parse.com/docs/jp/cloud_code_guide
다음은 상기 해설의'운함수'의 내용에 기초한 해설이다.
우선 파르세의 홈페이지에 접속해 새로운 앱을 만든다.
그런 다음 Add Class를 통해 클래스를 추가합니다(표).
이번엔 테이블 두 개 추가.
첫 번째 표는 데이터의 등록 수를 계산하는 데만 사용됩니다.
이번에는 Custom을 선택해서 Count라는 이름으로 만듭니다.
그런 다음 Number형 count라는 열을 추가합니다.
그리고 줄을 추가해서count의 초기 값을 0으로 설정합니다.

이 반은 한 줄밖에 없다.
그리고 클래스를 하나 더 추가합니다.
Custom을 선택하고 Random Numbers라는 이름으로 작성하십시오.
열 추가를 계속합니다.
number형의 indexNumber라는 열과 number형의 randomNumber라는 열을 추가합니다.

아직 추가로 실행할 필요가 없다.
그런 다음 JavaScript로 작성된 Cloud Code를 디버깅합니다.
프로그램이 위에 링크에 쓰여 있기 때문에 생략합니다.
JavaScript의 코드는 다음과 같습니다.
main.js
Parse.Cloud.define("randomObject", function(request, response) {
  var count;
  var query = new Parse.Query("Count");
  query.limit = 1;
  query.find({
    success: function(results) {
      count = results[0].get("count");
      if(count <= 0){
        response.error("No records were found!");
      }
      var randNum = Math.floor((Math.random() * count)) + 1;
      var query = new Parse.Query("RandomNumbers");
      query.equalTo("indexNumber", randNum);
      query.limit = 1;
      query.find({
        success: function(results) {
           response.success(results[0]);
        },
        error: function() {
           response.error("Couldn't find the results.");
        }
      });  
    },
    error: function() {
      response.error("Failed!");
    }
  });
});


Parse.Cloud.beforeSave("RandomNumbers", function(request, response) {
  var query = new Parse.Query("Count");
  query.limit = 1;
  query.find({
    success: function(results) {
      results[0].increment("count", 1);
      results[0].save();
      request.object.set("indexNumber", results[0].get("count"));
      response.success();
    },
    error: function() {
     response.error("Failed saving!");
   }
 });
});
두 개의 함수가 있다.
randomobject라는 함수는 터미널에서 무작위 대상을 얻기 위한 함수입니다.응답으로 랜덤 줄의 데이터를 되돌려줍니다.
beforeSave 함수는 RandomNumbers라는 범주(테이블)에 데이터를 저장하기 전에 호출되는 함수입니다.이것은 Cloud Code가 원래 갖고 있던 함수입니다.이 함수에서 Count 클래스에 저장된 값을 하나 더 저장합니다.
단말기에도 코드의 기술이 필요하다.iOS, Xcode는 다음과 같이 쓸 수 있다.
ViewController.m
-(IBAction)add:(id)sender{
    PFObject *todo = [PFObject objectWithClassName:@"RandomNumbers"];
    [todo.ACL setPublicReadAccess:YES];

    int rand = arc4random_uniform(1000);
    todo[@"randomNumber"] = @(rand);

    [todo saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
        if (!succeeded) {
            NSLog(@"%@", error.description);
        }else{
            NSLog(@"Success!");
        }
    }];
}

-(IBAction)show:(id)sender{
        [PFCloud callFunctionInBackground:@"randomObject"
                           withParameters:@{}
                                    block:^(PFObject *result, NSError *error) {
                                        if (!error) {
                                            int randNum = [result[@"randomNumber"] intValue];
                                            NSLog(@"%d", randNum);
                                        }else{
                                            NSLog(@"%@", error.description);
                                        }
                                    }];
}
구름에 랜덤 값을 저장하고 Show 방법으로 랜덤으로 대상을 가져옵니다.
응용 프로그램을 실행하고 dd 메서드에서 링크된 버튼을 클릭하면 Randoom Numbers 클래스에 데이터가 추가됩니다.
또 Show 메서드와 연관된 버튼을 클릭하면 랜덤으로 랜덤으로 랜덤으로 랜덤으로 랜덤으로 데이터가 터미널로 전송된다.
이처럼 파서스와 터미널의 합작을 통해 서버 측 개발의 번거로움을 대폭 줄일 수 있다.응용 엔지니어는 단말기 설치에 집중할 수 있을 것 같다.

좋은 웹페이지 즐겨찾기