> 백엔드 개발 > PHP 튜토리얼 > couchdb로 포켓몬 스폰 위치 레코더를 만드는 방법

couchdb로 포켓몬 스폰 위치 레코더를 만드는 방법

Joseph Gordon-Levitt
풀어 주다: 2025-02-10 12:01:13
원래의
640명이 탐색했습니다.

couchdb로 포켓몬 스폰 위치 레코더를 만드는 방법

이전 기사에서는 CouchDB에 소개되었습니다. 이번에는 배운 것들을 적용 할 수있는 본격적인 앱을 만들 것입니다. 또한 튜토리얼 끝에서 데이터베이스를 보호하는 방법을 배울 것입니다.

키 테이크 아웃

GeoCouch 플러그인으로 향상된 CouchDB를 사용하여 Pokemon Spawn 위치에 대한 지리 공간 데이터를 효율적으로 기록하고 검색합니다. 홈스테드 개선과 도커를 사용하여 강력한 개발 환경을 설정하여 종속성을 처리하고 다른 기계의 일관된 개발 설정을 보장합니다. 백엔드 개발을 용이하게하기 위해 슬림 프레임 워크 및 추가 PHP 패키지를 구현하여 Pokemon API 및 CouchDB와의 효율적인 커뮤니케이션을 가능하게합니다. 데이터베이스에 대한 무단 액세스 및 수정을 방지하기 위해 서버 관리자 및 데이터베이스 관리자를 설정하여 CouchDB 설치를 확보하십시오. Google Maps API를 사용하여 사용자가 Pokemon Spawns의 정확한 위치를 정확히 찾아서 저장하여 앱의 상호 작용과 기능을 향상시킬 수 있습니다. JavaScript 및 다양한 라이브러리를 사용하여 Frontend 기능을 구현하여 맵 상호 작용, 위치 검색 및 데이터 입력을위한 모달 창을 포함한 응답 형 사용자 인터페이스를 제공합니다. CouchDB 자격 증명으로 .env 파일을 업데이트하고 DB 클래스 생성자를 기본 URI에 포함하도록 DB 클래스 생성자를 수정하여 응용 프로그램이 안전 해지도록합니다.

프로젝트의 개요 당신은 포켓몬 스폰 위치 레코더를 만들 것입니다.

이를 통해 사용자는 Pokemon Go에서 발생하는 몬스터의 위치를 ​​저장할 수 있습니다. Google지도는 위치와 정확한 위치를 정확히 파악하기 위해 위치를 검색하는 데 사용됩니다. 사용자가 위치에 만족하면 마커를 상호 작용할 수 있으며, 사용자가 포켓몬의 이름을 입력하고 위치를 저장할 수있는 모달 상자를 표시 할 때. 다음 사용자가 와서 동일한 위치를 검색하면 이전 사용자가 추가 한 값은 맵에 마커로 표시됩니다. 앱의 모습은 다음과 같습니다

    프로젝트의 전체 소스 코드는 github에서 사용할 수 있습니다. <development> 개발 환경 설정 <have> 고립 된 DEV 환경이 양호하지 않으면 홈스테드 개선을 사용하는 것이 좋습니다.<come> 상자에는 CouchDB가 설치되어 있지 않으므로 수동으로 수행해야합니다. 그러나 평범한 couchdb는 아닙니다. 이 앱은 GEO 데이터 (위도 및 경도)와 협력해야합니다. Google지도의 경계 상자 정보를 CouchDB에 제공합니다. 경계 상자는 현재지도에 표시되는 영역을 나타내며, 해당 영역에 추가 한 이전의 모든 좌표는지도에도 표시됩니다. CouchDB는 기본적으로이를 수행 할 수 없으므로 CouchDB를 공간 초강대국을 제공하기 위해 GeoCouch라는 플러그인을 설치해야합니다. <est> 가장 간단한 방법은 GeoCouch Docker 컨테이너를 사용하는 것입니다. 또한 GeoCouch를 수동으로 설치하려고 시도 할 수 있지만 소스에서 CouchDB를 설치하고 직접 구성해야합니다. 유닉스 수염이 없으면이 방법을 권장하지 않습니다. <p> <install> 계속해서 Docker를 사용중인 VM에 설치하고 완료되면 여기로 돌아 오십시오. <oc oc> GeoCouch 설치 <one> 먼저, Repo를 복제하고 생성 된 디렉토리 내부에서 탐색하십시오. </one></oc></install></p> <p> <the the> 다음으로 Dockerfile을 열고 CouchDB를 다음과 같이 받기위한 스크립트를 교체하십시오. </the></p> <do> 현재 사용중인 다운로드 URL이 이미 실패 하므로이 작업을 수행해야합니다. <ker> 도커 이미지를 빌드 : <p> <a> 인터넷 연결에 따라 시간이 걸리므로 간식을 잡으십시오. 완료되면 컨테이너를 만들고 시작하십시오 </a></p> <started> 일단 시작되면 다음 명령을 실행하여 실행 중인지 테스트 할 수 있습니다. <h3> <m m> VM 외부에서 포트를 올바르게 전달하면 다음과 같습니다. </m> </h3> <the> 다음을 반환해야합니다 <p> <ll> 기사 전체에서 지속적으로 192.168.33.10을 참조합니다. 이것은 내가 사용한 Vagrant 박스 인 Scotchbox에 할당 된 IP입니다. 홈스테드 개선을 사용하는 경우 IP는 192.168.10.10입니다. 이 IP를 사용하여 앱에 액세스 할 수 있습니다. 다른 것을 완전히 사용하는 경우 필요에 따라 적응하십시오. </ll></p> <project> 프로젝트 설정 <use> 슬림 프레임 워크를 사용하여 앱 개발 속도를 높일 것입니다. 작곡가를 사용하여 새 프로젝트를 만듭니다 <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">&lt;span&gt;git clone git@github.com:elecnix/docker-geocouch.git &lt;/span&gt;&lt;span&gt;cd docker-geocouch &lt;/span&gt;</pre><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div> <awn> pokespawn은 프로젝트의 이름이므로 작곡가가 설치되면 해당 디렉토리로 이동하십시오. 그런 다음 다음 추가 패키지를 설치하십시오 <p> <brief> 다음은 각각에 대한 간단한 개요입니다<ul> <it> Danrovito/Pokephp - Pokemon API와 쉽게 대화하기 위해 <t> guzzlehttp/guzzle - couchdb 서버에 요청을 작성합니다 <ar> Gregwar/Image - Pokemon API에 의해 반환 된 포켓몬 스프라이트의 크기 조정. <as> vlucas/phpdotenv - 구성 값 저장을위한 <li> <dat> 데이터베이스 설정 <from> 브라우저에서 이불에 액세스하고 Pokespawn이라는 새 데이터베이스를 만듭니다. 일단 생성되면 데이터베이스 내부로 이동하여 새로운보기를 만듭니다. 뷰 드롭 다운을 클릭하고 임시보기를 선택하여 그렇게 할 수 있습니다. 지도 함수의 텍스트 주변 내부에 다음을 추가하십시오. </from></dat> </li> <li> </li> <done> 일단 완료되면 저장 버튼을 클릭하고 Pokemon을 디자인 문서의 이름으로 추가하고 by_name을보기 이름으로 추가하십시오. 뷰를 저장하려면 저장을 누르십시오. 나중에이 뷰를 사용하여 사용자가 입력 한 내용에 따라 포켓몬 이름을 제안합니다. <li> </li> <a> 다음, 공간 검색에 응답하기위한 설계 문서를 만듭니다. 뷰 드롭 다운에서 디자인 문서를 선택한 다음 새 문서를 클릭하여이를 수행 할 수 있습니다. 디자인 문서를 작성하기 위해 페이지에 들어가면 필드 추가 버튼을 클릭하고 필드 이름으로 공간을 추가하고 다음을 값으로 추가하십시오. <li> <ut>이 설계 문서는 GeoCouch가 제공하는 공간 기능을 사용합니다. 첫 번째는 문서에 LOC 필드가 있는지 확인하는 것입니다. LOC 필드는 특정 위치의 좌표를 포함하는 배열이며, 위도가 포함 된 첫 번째 항목과 경도를 포함하는 두 번째 항목을 포함합니다. 문서 가이 기준을 충족하면 일반보기처럼 emit () 함수를 사용합니다. 키는 Geojson Geometry이고 값은 Pokemon과 Sprite의 이름을 포함하는 배열입니다. <a> 디자인 문서에 요청을 할 때는 JSON 배열 형식이있는 start_range 및 end_range를 지정해야합니다. 각 항목은 숫자 또는 널일 수 있습니다. 개방형 범위를 원한다면 NULL이 사용됩니다. 예제 요청은 다음과 같습니다 </a></ut> </li> <put> 및 그 출력 : </put></a></done></as></ar></t></it> </ul> <to> GeoCouch로 할 수있는 특정 작업에 대해 자세히 알아 보려면 문서 또는 위키를 읽으십시오. . 프로젝트 생성 <to> 이제 코드를 쓸 준비가되었습니다. 먼저 백엔드 코드를 살펴보고 프론트 엔드 코드로 넘어갑니다. <h3>. <orter> Poke 수입업자 <some> 앱을 사용하려면 일부 포켓몬 데이터를 사용하기 전에 이미 데이터베이스에 있어야하므로 로컬로만 실행되는 스크립트가 필요합니다. 프로젝트 디렉토리의 루트에서 poke-Importer.php 파일을 만들고 다음을 추가하십시오.<div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">&lt;span&gt;git clone git@github.com:elecnix/docker-geocouch.git &lt;/span&gt;&lt;span&gt;cd docker-geocouch &lt;/span&gt;</pre><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div> 이 스크립트는 Pokemon API의 PokedEx 엔드 포인트를 요청합니다. 이 엔드 포인트에는 PokedEx 버전의 ID가 필요합니다. Pokemon Go 만 현재 플레이어는 1 세대부터 Pokemon을 잡을 수 있으므로 2를 ID로 공급합니다. 이것은 원래 포켓몬 게임의 칸토 지역에서 모든 포켓몬을 반환합니다. 그런 다음 데이터를 반복하고, 필요한 모든 정보를 추출하고, 스프라이트를 저장 한 후, 추출 된 데이터를 사용하여 새 문서를 작성하십시오. <p> 경로 <r> src/lours.php 파일을 열고 다음 경로를 추가하십시오 </r></p> <rout> 각 경로는 앱 전체에서 수행 할 수있는 동작에 응답합니다. 루트 경로는 홈페이지를 반환하고, 검색 경로는 포켓몬 이름 제안을 반환하고, 저장 위치 경로는 위치를 저장하고 페치 경로는 특정 위치에서 포켓몬을 반환합니다. <h3>. 홈 컨트롤러 </h3> SRC 디렉토리에서 앱/컨트롤러 폴더를 생성하고 내부에 homecontroller.php 파일을 만듭니다. 이것은 각 경로에 필요한 모든 작업을 수행합니다. 코드는 다음과 같습니다. <code code> <p> <er> 홈 컨트롤러는 생성자를 통해 전달되는 $ 렌더러를 사용하여 앱의 홈페이지를 렌더링합니다. 또한 곧 생성 할 DB 클래스를 사용합니다. </er></p> <ouch> couchdb # Get the CouchDB source RUN cd /opt; wget http://www-eu.apache.org/dist/couchdb/source/${COUCH_VERSION}/a$ tar xzf /opt/apache-couchdb-${COUCH_VERSION}.tar.gz 와 대화합니다 <il> 앱 디렉토리 아래에서 utils/db.php 파일을 만듭니다. 파일을 열고 클래스를 만듭니다 : <p> 클래스 내에서 새로운 Guzzle 클라이언트를 만듭니다. CouchDB 용 PHP 클라이언트 대신 Guzzle을 사용하고 있습니다. </p> <is> 구성은 프로젝트의 루트에있는 .env 파일에서 나온 것입니다. 여기에는 couchdb의 기본 URL이 포함되어 있습니다 <h3> SearchPokemon은 자동으로 인한 기능이 사용하는 데이터를 반환 할 책임이 있습니다. CouchDB는 실제로 SQL에 익숙한 유사한 조건을 지원하지 않으므로 약간의 해킹을 사용하여 모방합니다. 여기서 속임수는 Key 대신 START_KEY 및 END_KEY를 사용하여 정확히 일치 만 반환합니다. FFF0은 기본 다국어 평면의 끝에서 할당 된 특수 유니 코드 문자 중 하나입니다. 이것은 검색중인 실제 문자열의 끝에서 추가하는 좋은 후보자가되므로 나머지 캐릭터는 높은 값으로 인해 선택 사항이됩니다. 이 핵은 짧은 단어 만으로만 작동하므로 포켓몬 이름을 검색하기에 충분합니다. </h3> <qu> MakeGetRequest는 CouchDB에 대한 읽기 요청을 수행하는 데 사용됩니다. <p> <emon> savepokemonlocation은 이름과 스프라이트와 함께 Google 맵 마커가 현재 포인팅중인 좌표를 저장합니다. 위치와 관련된 모든 문서를 쉽게 검색하기 위해 Doc_type 필드도 추가됩니다. </emon></p> <id> isvalidCoordinates는 위도와 경도 값이 유효한 형식인지 확인합니다.<div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">&lt;span&gt;git clone git@github.com:elecnix/docker-geocouch.git &lt;/span&gt;&lt;span&gt;cd docker-geocouch &lt;/span&gt;</pre><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div> <ok> fetchpokemons는 이전에 만든 공간 검색을 위해 설계 문서에 요청하는 기능입니다. 여기에서 Southwest 좌표를 START_RANGE의 값으로 지정하고 Northeast 좌표는 end_range의 값으로 지정합니다. 응답은 또한 너무 많은 데이터를 요청하지 않기 위해 처음 100 행으로 제한됩니다. 이전에는 CouchDB가 실제로 필요하지 않은 일부 데이터가 있음을 알았습니다. 프론트 엔드에서 필요한 데이터 만 추출한 다음 반환하는 것이 유용합니다. 나는 그것을 다른 날의 최적화로 남겨두기로 결정했습니다. <p> </p> <onse onse> handleresponse는 couchdb에 의해 반환 된 JSON 문자열을 배열로 변환합니다. <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"># Get the CouchDB source RUN cd /opt; wget http://www-eu.apache.org/dist/couchdb/source/${COUCH_VERSION}/a$ tar xzf /opt/apache-couchdb-${COUCH_VERSION}.tar.gz </pre><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div> <er> root 디렉토리에서 Composer.json을 열고 요구 사항 바로 아래에 다음을 추가 한 다음 Composer Dump-Autoload를 실행하십시오. 이를 통해 SRC/App 디렉토리 내의 모든 파일을 자동로드하여 앱 네임 스페이스 내에서 사용할 수 있도록 할 수 있습니다. <p> <in> 마지막으로 홈 컨트롤러를 컨테이너에 주입하십시오. src/fectencies.php 파일을 열고 다음을 하단에 추가하여 다음을 수행 할 수 있습니다. </in></p> <to>이를 통해 나뭇 가지 렌더러를 홈 컨트롤러로 전달하고 라우터에서 홈 컨트롤러에 액세스 할 수 있습니다. <plate> 홈 페이지 템플릿 <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">&lt;span&gt;docker build -t elecnix/docker-geocouch:1.6.1 . &lt;/span&gt;</pre><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div> <to> 이제 프론트 엔드를 진행할 준비가되었습니다. 먼저 프로젝트 디렉토리의 루트에서 템플릿/index.html 파일을 만들고 다음을 추가하십시오. <p> </p>에는 앱이 사용하는 다양한 라이브러리의 스타일과 앱 스타일이 있습니다. 에는 위치, 맵 컨테이너 및 새로운 위치를 저장하기위한 모달을 검색하기위한 텍스트 필드입니다. 아래는 앱에 사용 된 스크립트입니다. Google지도 스크립트에서 자신의 API 키로 your_googlemap_apikey를 교체하는 것을 잊지 마십시오. <cript cript> javaScript <j> 기본 JavaScript 파일 (public/js/main.js)의 경우 먼저 전체 파일 전체에 필요한 값을 저장하기위한 변수를 만듭니다. </j></cript></to></plate></to></er></onse></ok></id></qu></is></il></ouch>

    다음으로 맵을 초기화하기위한 함수를 만듭니다. Min_Zoomlevel은 세계지도 전체를 볼 수있을 때까지 사용자가 확대되지 않도록 지정됩니다. CouchDB가 반환 할 수있는 결과에 이미 한도를 추가했지만 사용자가 전 세계에서 데이터를 선택할 수 있다고 기대하지 못하게하는 것도 좋습니다.
    <span>docker create -ti -p 5984:5984 elecnix/docker-geocouch:1.6.1
    </span><span>docker start <container id>
    </span>
    로그인 후 복사
    로그인 후 복사
    사용자가 추가하려는 핀 포인팅 위치에 대한 마커를 만듭니다. 그런 다음 마커를 누르면 위치를 추가하기 위해 모달을 열기 위해 이벤트 리스너를 추가하십시오.

    검색 창을 초기화하십시오 :

    다양한 맵 리스너 추가 :
    <span>curl localhost:5984
    </span>
    로그인 후 복사
    검색 상자의 장소가 변경 될 때 이벤트 리스너 추가.

    Fetchpokemon 함수는 이전에 현재 볼 수있는 맵의 영역에 표시된 포켓몬을 가져 오는 일을 담당합니다.

    <span>git clone git@github.com:elecnix/docker-geocouch.git
    </span><span>cd docker-geocouch
    </span>
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사
    이것은 포켓몬의 이름을 입력하기위한 텍스트 필드의 자동 검색 기능을 추가하기위한 코드입니다. 각 제안을 렌더링하는 데 사용되는 HTML을 사용자 정의하기 위해 RenderItem 기능이 지정됩니다. 이를 통해 Pokemon의 ID를 데이터 속성으로 추가하여 제안이 선택되면 Pokemon_ID 필드의 값을 설정하는 데 사용합니다. <p> <location> 저장 위치 버튼을 누르면 서버에 Pokemon 위치를 CouchDB에 추가하라는 요청이 이루어집니다. </location></p> 스타일 > public/css/styles.css 파일을 만들고 다음 스타일을 추가하십시오 : <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"># Get the CouchDB source RUN cd /opt; wget http://www-eu.apache.org/dist/couchdb/source/${COUCH_VERSION}/a$ tar xzf /opt/apache-couchdb-${COUCH_VERSION}.tar.gz </pre><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div> <ouch> couchdb 보안 <c> 기본적으로 couchdb는 모두에게 열려 있습니다. 이것은 일단 인터넷에 노출되면 누구나 데이터베이스에서 혼란을 일으킬 수 있음을 의미합니다. 누구나 HTTP 요청을하기 위해 Curl, Postman 또는 기타 도구를 사용하여 모든 데이터베이스 작업을 수행 할 수 있습니다. 실제로이 임시 상태에는 "관리자 당사자"라는 이름이 있습니다. 이전 튜토리얼 에서이 작업을 수행했으며 새 데이터베이스,보기 및 디자인 문서를 이전에 만들었을 때조차도 보았습니다. 이러한 모든 작업은 서버 관리자에 의해서만 수행 할 수 있지만 로그인하지 않고 수행했습니다. 아직도 확신하지 않습니까? 로컬 컴퓨터에서 이것을 실행 해보십시오 : <p> </p> <the> CouchDB 설치에 서버 관리자가 아직 없으면 다음과 같은 응답을 얻을 수 있습니다. <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">&lt;span&gt;docker build -t elecnix/docker-geocouch:1.6.1 . &lt;/span&gt;</pre><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div> Yikes, 맞습니까? 좋은 소식은 쉬운 수정이 있다는 것입니다. 서버 관리자를 만듭니다. 다음 명령으로 그렇게 할 수 있습니다 <h3> <creat creat> 위의 명령은 암호“mySupersecurePassword”와 함께“kami”라는 새 서버 관리자를 만듭니다. 기본적으로 CouchDB에는 서버 관리자가 없으므로 관리자 당사자가 끝납니다. 서버 관리자는 신과 같은 힘을 가지고 있으므로 하나 또는 두 개만 만드는 것이 좋습니다. 그런 다음 CRUD 작업 만 수행 할 수있는 소수의 데이터베이스 관리자를 만듭니다. 다음 명령을 실행하여 그렇게 할 수 있습니다 </creat> </h3> <it> 성공하면 다음과 유사한 응답을 반환합니다. <p> <try> 이제 다른 데이터베이스 이름으로 이전부터 같은 명령을 시도 할 수 있습니다. </try></p> <d d> 그리고 couchdb는 당신에게 소리 쳤다 : <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">&lt;span&gt;docker create -ti -p 5984:5984 elecnix/docker-geocouch:1.6.1 &lt;/span&gt;&lt;span&gt;docker start &lt;container id&gt; &lt;/span&gt;</pre><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div> <work>이 작동하려면 이제 URL과 같은 URL에 사용자 이름과 비밀번호를 제공해야합니다.<div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">&lt;span&gt;git clone git@github.com:elecnix/docker-geocouch.git &lt;/span&gt;&lt;span&gt;cd docker-geocouch &lt;/span&gt;</pre><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div> <that that> 알았어, 그게 다야? 글쎄, 당신이 한 유일한 일은 서버 관리자 만 수행 할 수있는 데이터베이스 작업을 제한하는 것이 아닙니다. 여기에는 새 데이터베이스 만들기, 데이터베이스 삭제, 사용자 관리, 모든 데이터베이스 (시스템 테이블 포함)에 대한 풀 아드먼 액세스, 모든 문서에 대한 CRUD 작업 등이 포함됩니다. 이로 인해 인증되지 않은 사용자는 여전히 모든 데이터베이스에서 CRUD 작업을 수행 할 수있는 힘이 있습니다. 당신은 이불에서 로그 아웃하고, 엉망으로 만들고 싶은 데이터베이스를 선택하고 그 일을 할 수 있습니다. CouchDB는 여전히 해당 작업을 행복하게 수행 할 것입니다 <do> 그래서 나머지 구멍을 어떻게 패치합니까? Writ 이불에서 서버 관리자 또는 데이터베이스 관리자 계정을 사용하여 로그인하고 작업하려는 데이터베이스를 선택하고 새 설계 문서를 만듭니다. id를 _design/blockanonymouswrites로 설정하고 validate_doc_update라는 필드를 추가하고 다음과 같은 값을 설정하십시오. <p> <of> 문서의 새 버전, 기존 문서 및 사용자 컨텍스트는이 기능에 대한 인수로 전달됩니다. 확인해야 할 유일한 것은 데이터베이스 이름, 작업을 수행하는 사용자의 이름 및 사용자에게 할당 된 다양한 역할을 포함하는 USERCTX입니다. <j> SecOBJ는 네 번째 논쟁으로 전달되지만 실제로는 작업 할 필요는 없습니다. 그래서 생략 된 이유입니다. 기본적으로 SECOBJ는 데이터베이스에서 관리자 권한이 설정된 내용을 설명합니다. <added> 값을 추가 한 후에는 값을 추가 한 후 디자인 문서를 저장하고 로그 아웃 한 다음 새 문서를 만들거나 기존 문서를 업데이트하고 COUCHDB가 불만을 보려고합니다. </added></j></of></p> <p> <check> 사용자 이름 만 확인하고 있기 때문에 공격자는 단순히 사용자 이름을 추측하고 암호에 값을 제공 할 수 있다고 생각할 수 있습니다. 글쎄, CouchDB는 디자인 문서가 실행되기 전에 사용자 이름과 비밀번호가 올바른지 확인하기 때문에 실제로는 아닙니다. 또는 단일 데이터베이스에 사용자가 많으면 역할을 확인할 수도 있습니다. 아래 기능은 "Pokemon_master"의 역할이없는 모든 사용자에게 오류가 발생합니다. </check></p> <to> CouchDB를 보호하는 방법에 대한 자세한 내용은 다음 리소스를 확인하십시오.<ul> <b> Couchdb 결정 안내서 - 보안 <guide> CouchDB 인증 및 보안에 대한 결정적인 안내서 <v> 보안 기능 개요 <ation> 문서 업데이트 유효성 검사 <li> </li> <app> 앱 보안 <li> <ap> 데이터베이스에 적용한 보안 조치를 사용하기 위해 앱을 업데이트하여 마무리하겠습니다. 먼저 .env 파일을 업데이트하십시오. IP 주소와 포트만으로 base_uri를 변경 한 다음 생성 한 CouchDB 사용자의 사용자 이름과 비밀번호를 추가하십시오. </ap> </li> 그런 다음 새로운 세부 사항을 사용하려면 DB 클래스의 생성자를 업데이트하십시오. <li> </li> 결론 그게 다야! 이 튜토리얼에서는 CouchDB로 Pokemon Spawn 위치 레코더 앱을 만드는 방법을 배웠습니다. GeoCouch 플러그인의 도움으로 공간 쿼리를 수행 할 수 있었고 CouchDB 데이터베이스를 보호하는 방법을 배웠습니다. <c> 프로젝트에서 couchdb를 사용하십니까? 무엇 때문에? 이 작은 프로젝트에 추가 할 제안 / 기능이 있습니까? 의견에 알려주십시오! </c></app></ation></v></guide></b> </ul> <questions> 포켓몬 스폰 위치에 대한 질문 Pokemon Go에서 Pokemon Spawn 위치를 찾을 수있는 방법은 무엇입니까? <p> Pokemon Go의 Pokemon Spawn 위치는 일반적으로 높은 세포 활동이있는 영역에서 발견됩니다. 이 지역에는 공원, 쇼핑 센터 및 기타 공공 장소가 포함될 수 있습니다. Pokemon Go 앱은 GPS를 사용하여 위치를 추적하고 주변 환경을 기반으로 포켓몬을 스폰합니다. Pokemap.net과 같은 타사 앱 또는 웹 사이트를 사용하여 스폰 위치를 찾을 수도 있습니다. 그러나 타사 서비스를 사용하면 Pokemon Go의 서비스 약관을 위반할 수 있으며 금지를 초래할 수 있습니다. </p> Pokemon Go의 생물체는 무엇이며 스폰 위치에 어떤 영향을 미칩니 까? <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">&lt;span&gt;git clone git@github.com:elecnix/docker-geocouch.git &lt;/span&gt;&lt;span&gt;cd docker-geocouch &lt;/span&gt;</pre><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div> <in> 포켓몬 GO의 생물체는 어떤 유형의 포켓몬이 생성되는지에 영향을 미치는 특정 지리적 영역입니다. 예를 들어, 물 유형 포켓몬은 물 바디 근처에서 생성 될 가능성이 높으며 잔디 형 포켓몬은 공원이나 숲에서 생성 될 가능성이 높습니다. 다른 생물체를 이해하면 특정 유형의 포켓몬이 생성 될 가능성이있는 위치를 예측하는 데 도움이 될 수 있습니다. <p> 포켓몬 스폰 위치를 어떻게 녹화 할 수 있습니까? </p> 다양한 방법을 사용하여 포켓몬 스폰 위치를 녹화 할 수 있습니다. 한 가지 방법은 CouchDB와 같은 데이터베이스를 사용하여 Pokemon Spawns의 위치를 ​​저장하는 것입니다. 여기에는 Pokemon Go API를 사용하여 스폰 데이터를 검색 한 다음이 데이터를 CouchDB에 저장하는 것이 포함됩니다. 그런 다음이 데이터를 사용하여 스폰 패턴을 분석하고 미래의 스폰 위치를 예측할 수 있습니다. <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"># Get the CouchDB source RUN cd /opt; wget http://www-eu.apache.org/dist/couchdb/source/${COUCH_VERSION}/a$ tar xzf /opt/apache-couchdb-${COUCH_VERSION}.tar.gz </pre><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div><div class="contentsignin">로그인 후 복사</div></div> 포켓몬 스폰 위치 데이터를 사용하여 향후 스폰을 예측할 수 있습니까? <h2> </h2> 예, Pokemon Spawn 위치 데이터를 사용할 수 있습니다. 미래의 스폰을 예측하십시오. 데이터를 분석하면 스폰 위치 및 시간에서 패턴을 식별 할 수 있습니다. 이것은 미래에 특정 유형의 포켓몬이 언제, 언제 스폰 될지 예측하는 데 도움이 될 수 있습니다.<risk> 타사 앱이나 웹 사이트를 사용하여 포켓몬 스폰 위치를 찾는 것과 관련된 위험이 있습니까? <h3> 예, 타사 앱이나 웹 사이트를 사용하여 포켓몬 스폰 위치를 찾는 것과 관련된 위험이 있습니다. 이러한 서비스는 Pokemon Go의 서비스 약관을 위반할 수 있으며 금지가 발생할 수 있습니다. 또한 이러한 서비스는 항상 정확하거나 최신 정보를 제공하지는 않을 수 있습니다. </h3> 픽셀몬 모드를 사용하여 스폰 위치를 찾을 수있는 방법은 무엇입니까? <p> 마인 크래프트 용 픽셀몬 모드를 찾을 수 있습니다. 게임 내 포켓몬 스폰 위치. 이 모드에는지도에서 포켓몬의 스폰 위치를 보여주는 기능이 포함되어 있습니다. 이 기능을 사용하여 게임 내에서 Pokemon을 찾아 잡을 수 있습니다. </p> Tenorshare Pokemon Go Map은 무엇이며 어떻게 작동합니까? <h3> </h3> Tenorshare Pokemon Go지도는 타사 서비스입니다. 그것은 Pokemon Spawn 위치의지도를 제공합니다. 지도는 실시간으로 업데이트되며 산란하는 포켓몬 유형 및 정확한 위치에 대한 정보가 포함되어 있습니다. 그러나이 서비스를 사용하면 Pokemon Go의 서비스 약관을 위반하고 금지가 발생할 수 있습니다. <p> Pogomap 웹 사이트를 사용하여 Pokemon Spawn 위치를 찾을 수 있습니까? Pogomap 웹 사이트는 Pokemon Spawn 위치지도를 제공합니다. 지도는 실시간으로 업데이트되며 산란하는 포켓몬 유형 및 정확한 위치에 대한 정보가 포함되어 있습니다. 이 웹 사이트를 사용하여 해당 지역에서 포켓몬을 찾아 잡을 수 있습니다. </p> Pogomap 웹 사이트에 기여할 수 있습니까? <h3> 예, Pokemon Spawn 위치를보고하여 Pogomap 웹 사이트에 기여할 수 있습니다. 이를 통해지도를 최신 및 정확한 상태로 유지하는 데 도움이됩니다. 그러나 허위 정보를보고하면 웹 사이트에서 금지가 발생할 수 있습니다. </h3> 포켓몬 스폰 위치를 찾는 다른 방법이 있습니까? <p> 예, 포켓몬 스폰을 찾는 다른 방법이 있습니다. 위치. 예를 들어, 플레이어가 스폰 위치에 대한 정보를 공유하는 로컬 포켓몬 GO 커뮤니티 또는 포럼에 가입 할 수 있습니다. 또한 근처의 게임 내 기능을 사용하여 현재 위치에 가까운 포켓몬을 찾을 수 있습니다.</p></risk></in></questions></to></do></that></work></d></it></the></c></ouch>

위 내용은 couchdb로 포켓몬 스폰 위치 레코더를 만드는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿