(明確にするために、Parseクロージャーによって同様に影響を受けた他の人を助けるために私が見つけた答えを提供するために、この質問をします)
Parse.com は、2017年1月に閉店すると発表しましたが、ありがたいことに、 Parse Serverソフトウェアをオープンソース にして、すべてのホストが独自のParseサーバーインスタンス。
私はParse Serverをホストするために利用可能なさまざまなオプションを調査し、Herokuで私のものをホストすることを決定しました
Parseはとても使いやすく、バックエンドの設定に関する実際の経験がないため、とても気に入りました。私はいくつかのガイドをオンラインで試そうとしましたが、あいまいな手順や、一連のツールをインストールする別のサイトのうさぎの穴を掘り下げる手順では、それらをすべて理解するのが少し難しいことがわかりました。
HerokuでParse Serverをホストし、アプリケーションからのクロスドメインリクエストを受け入れるように設定して、MongoDBデータベースを作成し、すべてのデータをParseから新しいデータベースに移行するにはどうすればよいですか?
https://www.parse.com/apps/<APP_NAME>/edit#keys
は<APP_NAME>
がアプリの名前です。新しいアプリを作成する場合は、ここで ランダムなキーを生成できます 。使用する予定のSDKに新しいキーを追加できます。ここでは、JavaScript SDKにキーを追加します。$ heroku login
と入力し、Herokuの電子メールとパスワードを入力します$ heroku git:clone -a <MY_APP_NAME>
(<MY_APP_NAME>
はherokuアプリの名前)を入力して、サーバーコードリポジトリのローカルコピーを作成します。前に見たgit urlを使用することもできます。リポジトリを複製すると、「警告:空のリポジトリを複製したようです。」というメッセージが表示されます。 appフォルダーが作成されますが、標準のgitファイルのみが含まれ、解析サーバーは含まれません。これを修正します。 official parse-server-example git repo に移動し、リポジトリのZipファイルをダウンロードします。フォルダーを抽出し、すべてのファイルとフォルダーをparse-server-example-masterフォルダーからアプリフォルダーにドラッグします。
ターミナルに戻り、$ cd <MY_APP_NAME>
と入力してリポジトリに移動します
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
});
。
$ git add .
$ git commit -am "make it better"
$ git Push heroku master
<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'
複数の解析サーバーインスタンスでjsfiddleツールを使用すると、「無効なセッショントークン」というエラーが発生する場合があります。これが発生した場合、開発コンソールを開き、ローカルストレージからすべての「解析」キーを削除します。その後、機能します。
本番環境のアプリを移行する前に、テストアプリで少なくとも1回はこれを行う必要があります。また、古いアプリのレガシーfiles
はまだ転送されていないようです。 このGitHubの問題を参照してください
https://dashboard.heroku.com/apps/<MY_HEROKU_APP_NAME>/resources
に移動し、アイコンの横にある[MongoLab]をクリックして、次のページで[すべてのコレクションを削除]をクリックします。https://dashboard.parse.com/apps/<APP_NAME>/settings/general
に移動します。ここで、<APP_NAME>
はparseアプリの名前ですMONGOLAB_URI
を入力します