MongoDB를 사용하여 Heroku에서 나만의 Parse Server를 호스팅하려면 어떻게 해야 합니까?
(분명히 말하자면, 저는 Parse 폐쇄로 인해 유사한 영향을 받은 다른 사람들을 돕기 위한 노력에서 찾은 답을 제공하기 위해 이 질문을 합니다.)
Parse.com 은 최근 2017년 1월에 가게를 닫을 것이라고 발표했지만 다행히도 그들은 우리 모두가 자체적인 Parse 서버 인스턴스를 호스팅할 수 있도록 그들의 Parse 서버 소프트웨어를 오픈 소스로 만들었습니다.
저는 Parse Server 호스팅에 사용할 수 있는 다양한 옵션을 조사했고 Heroku에서 제 옵션을 호스팅하기로 결정했습니다.
저는 Parse가 너무 사용하기 쉽고 백엔드를 설정한 경험이 없기 때문에 매우 좋았습니다.저는 온라인에서 여러 가이드를 따르려고 했지만, 여러 도구를 설치하는 다른 사이트의 토끼굴로 당신을 안내하는 모호한 단계나 단계로 모두 이해하기가 조금 어려웠습니다.
herku에서 Parse Server를 호스팅하고, 애플리케이션에서 교차 도메인 요청을 수락하도록 설정하고, MongoDB 데이터베이스를 만들고, Parse에서 새 데이터베이스로 모든 데이터를 마이그레이션하려면 어떻게 해야 합니까?
Heroku에서 자체 호스팅 구문 분석 서버
Heroku, MongoDB 및 구문 분석 설정
- https://signup.heroku.com/ 을 방문하여 계정에 등록합니다.
- 이메일을 확인하고 Heroku에 로그인합니다.
- 헤로쿠에 구문 분석 서버 배포로 이동
- "Deploy to Heroku" 클릭
- 구문 분석 서버에 이름 지정
- 앱의 APP_ID와 MASTER_KEY를 건너뛰면 나중에 설정하겠습니다.
- "무료 배포" 클릭
- 아래 상자가 나타나면 신용 카드 정보를 입력하여 계정을 확인합니다.걱정하지 마세요, 나중에 계정을 업그레이드하지 않으면 요금이 부과되지 않습니다.이것은 단순히 헤로쿠가 남용을 방지하기 위해 마련한 보안 조치입니다.
- 헤로쿠가 당신의 앱을 만들 것입니다.또한 백그라운드에서 .git repo를 생성하고 공식 parse-server-example git repo의 내용을 복제하고 MongoDB 데이터베이스를 만들고 Heroku 앱이 해당 DB를 사용하도록 구성합니다.
- 앱이 생성되면 Heroku 대시보드로 이동하거나 로그인하고 "개인 앱"을 클릭한 다음 구문 분석 서버의 이름을 클릭하여 액세스할 수 있습니다.
- 앱의 대시보드에서 "설정"을 클릭한 다음 "구성 변수 표시"를 클릭합니다.
- APP_ID는 MASTER_KEY입니다.만약 당신이 지금 Parse.com 에 앱이 있다면, 그것이 사용하는 것과 같은 키를 사용할 수 있습니다.당신은 그것을 얻을 수 있습니다.
https://www.parse.com/apps/<APP_NAME>/edit#keys
<APP_NAME>
앱의 이름입니다.새 앱을 만드는 경우 여기에서 임의 키를 생성할 수 있습니다.당신이 사용하고자 하는 모든 sdks에 대해 새로운 키를 추가할 수 있습니다, 저는 여기에 javascript sdk에 대한 키를 추가합니다.
- MONGOLAB_URI 값을 기록하십시오. 기존의 Parse 데이터를 새 DB로 마이그레이션하려면 나중에 이 값이 필요합니다.
- 아래로 스크롤하여 앱에 대한 Git Url과 Heroku 도메인을 기록하면 나중에 필요합니다.
Heroku 앱을 관리하기 위한 명령줄 인터페이스 도구인 Heroku Toolbelt를 설치합니다.
터널프트를열다입력합니다을음고프롬미다를 입력합니다.
$ heroku login
하세요.를 입력하십시오.
$ heroku git:clone -a <MY_APP_NAME>
서)<MY_APP_NAME>
herku 앱의 이름입니다). 서버 코드 repo의 로컬 복사본을 만들려면 앞에서 본 giturl을 사용할 수도 있습니다.레포를 복제하면 "warning:빈 리포지토리를 복제한 것 같습니다."앱 폴더가 생성되지만 표준 git 파일만 포함되고 구문 분석 서버는 포함되지 않습니다.이거 고치려고요.공식 parse-server-example gitrepo로 이동하여 repo의 zip 파일을 다운로드합니다.폴더의 압축을 풀고 parse-server-example-master 폴더의 모든 파일과 폴더를 앱 폴더로 끕니다.터미널로 돌아가서 다음을 입력합니다.
$ cd <MY_APP_NAME>
CORS 사용(다른 도메인의 API를 사용할 수 있도록)
- 하드 드라이브에서 방금 만든 레포의 로컬 복사본을 찾아 엽니다.
- 폴에서열을 .
package.json
가추를 합니다."cors": "*"
에▁dependencies
다음과 같이:
.
"dependencies": {
"express": "~4.2.x",
"kerberos": "~0.0.x",
"parse": "~1.6.12",
"parse-server": "~2.0", // <= don't forget this comma
"cors": "*" // add this line
}
메모
JSON이 유효하지 않으므로 실제 코드에서 위의 설명을 제거해야 합니다.
- 을 엽니다.
index.js
다음과 같이 변경합니다.
.
var express = require('express'); // find this line in the file
var cors = require('cors') // add this line below it
//....
//var databaseUri = process.env.DATABASE_URI || process.env.MONGOLAB_URI // old name, you may need to change this for new deployments
var databaseUri = process.env.DATABASE_URI || process.env.MONGODB_URI // changed to MONGODB_URI in Heroku!
//....
var app = express(); // find this line in the file
app.use(cors()); // add this line below it
//Add declarations for any keys you plan to use as shown below
var api = new ParseServer({
databaseURI: databaseUri || 'mongodb://localhost:27017/dev',
cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js',
appId: process.env.APP_ID || 'myAppId',
masterKey: process.env.MASTER_KEY || '',
serverURL: process.env.SERVER_URL || 'http://localhost:1337',
javascriptKey: process.env.JAVASCRIPT_KEY || '', //** add this line no need to set values, they will be overwritten by heroku config vars
restAPIKey: process.env.REST_API_KEY || '', //** add this line
dotNetKey: process.env.DOT_NET_KEY || '', //** add this line
clientKey: process.env.CLIENT_KEY || '', //** add this line
});
- 터미널 창으로 돌아가 복제된 평판의 폴더에 아직 있는지 확인하고 아래를 입력하여 Heroku에 변경 사항을 적용합니다.
.
$ git add .
$ git commit -am "make it better"
$ git push heroku master
새 구문 분석 서버 테스트
- 이 jsFiddle 페이지로 이동
- 바꾸다
<MY_APP_ID>
,<MY_JS_KEY>
,<MY_HEROKU_APP_NAME>
앱에 적합한 값으로 이동한 후 "실행"을 클릭합니다.
.
Parse.initialize('<MY_APP_ID>', '<MY_JS_KEY>');
Parse.serverURL = 'https://<MY_HEROKU_APP_NAME>.herokuapp.com/Parse'
- 새 Parse 서버가 올바르게 작동하고 있음을 알리는 다음 경고가 표시됩니다.
참고:
여러 구문 분석 서버 인스턴스에 jsfiddle 도구를 사용하는 경우 "invalid session token" 오류가 발생할 수 있습니다.이 경우 개발 콘솔을 열고 로컬 스토리지에서 모든 "parse" 키를 삭제하면 다음과 같이 작동합니다.
Parse에서 기존 데이터 마이그레이션
프로덕션 앱을 마이그레이션하기 전에 테스트 앱을 사용하여 이 작업을 한 번 이상 수행해야 합니다.또한, 유산이files
이전 앱에서 아직 전송되지 않을 수 있습니다. 이 GitHub 문제를 참조하십시오.
- 마이그레이션하기 전에 새 MongoDB에 데이터가 있으면 마이그레이션이 실패합니다.방금 서버를 테스트하고 작성 및 이의를 제기한 경우 다음으로 이동합니다.
https://dashboard.heroku.com/apps/<MY_HEROKU_APP_NAME>/resources
해당 아이콘 옆에 있는 "MongoLab"을 클릭한 다음 다음 페이지에서 "모든 컬렉션 삭제"를 클릭합니다. - 에 가다
https://dashboard.parse.com/apps/<APP_NAME>/settings/general
어디에<APP_NAME>
구문 분석 앱의 이름입니다. - 페이지를 아래로 스크롤하고 "마이그레이션"을 클릭합니다.
- 모드에서 회색 영역(입력과 크게 다르지 않음...)에 다음을 입력합니다.
MONGOLAB_URI
우리가 전에 메모한 것. - 마이그레이션 시작을 누릅니다.
- 마이그레이션이 완료되면 "완료"를 클릭한 다음 마이그레이션이 완료되면 팝업에서 "확인"을 클릭합니다. 그러면 모든 데이터가 새 MongoDB 데이터베이스에 저장됩니다.
- 지금은 새 DB에 저장된 데이터가 Parse 대시보드에 계속 표시됩니다.모든 것을 테스트하려면 이전에 사용했던 테스트 jsFiddle로 돌아가서 다시 실행합니다.이제 Parse 대시보드로 이동하면 새로 추가된 클래스와 행이 표시됩니다.새 구문 분석 대시보드를 사용했을 때 행 수를 볼 수 있었지만 행 영역은 모두 비어 있었습니다.이전의 Parse 대시보드로 돌아가서 모든 것을 정상적으로 볼 수 있었습니다.
언급URL : https://stackoverflow.com/questions/35389389/how-can-i-host-my-own-parse-server-on-heroku-using-mongodb
'programing' 카테고리의 다른 글
누가 ORA-29861 오류와 그 가능한 원인을 쉬운 영어로 설명해 줄 수 있습니까? (0) | 2023.06.24 |
---|---|
VBA 오류 1004 - 범위 클래스의 메서드 선택 실패 (0) | 2023.06.24 |
pm2에서 'npm start' 스크립트를 실행할 수 있습니까? (0) | 2023.06.24 |
Spring JDBC JDBC 드라이버 클래스 [oracle.jdbc.driver]를 로드할 수 없습니다.오라클 드라이버] (0) | 2023.06.24 |
계산된 속성이 변경되어도 부트스트랩 구성 요소가 변경되지 않음 (0) | 2023.06.24 |