Parseは、サービスプラットフォームとしてのモバイルバックエンドであり、2013年からFacebookが所有しています。 2016年1月、Parse [発表](http://blog.parse.com/announcements/moving-on/)のホスティングサービスは2017年1月に終了します。
ユーザーがサービスから移行できるように、Parseは** Parse Server **と呼ばれるバックエンドのオープンソースバージョンをリリースしました。これは、Node.jsおよびMongoDBを実行している環境に展開できます。
このガイドは、Tencent Cloud [CVM](https://cloud.tencent.com/product/cvm?from=10680)などのUbuntu14.04にParseServerをインストールするための詳細な手順を含む公式ドキュメントを補足します。これは、最初に、アプリケーションの移行を検討しているParse開発者の出発点として機能し、公式の[Parse Server Guide](https://parse.com/docs/server/guide)と一緒に読む必要があります。
sudo
コマンドを使用できる非rootアカウントを持つUbuntu サーバーがセットアップされ、ファイアウォールがオンになっています。サーバーをお持ちでない学生は、[こちら](https://cloud.tencent.com/product/cvm?from=10680)から購入できますが、個人的には、無料のTencent Cloud [Developer Lab](https://cloud.tencent.com/developer/labs/series/10003?from=10680)を使用して実験し、[サーバーを購入]( https://cloud.tencent.com/product/cvm?from=10680)。
さらに、システムには実行中のMongoDBインスタンスが必要です。ドロップレットの作成時に[このスクリプト](http://do.co/1C60X0a)をユーザーデータに追加することで、MongoDBを新しいCVMに自動的にインストールすることもできます。
sudo
ユーザーとMongoDBを使用してシステムを構成した後、このガイドに戻って続行してください。
まず、現在の作業パスを sudo
ユーザーのホームディレクトリに変更します。
cd ~
[ NodeSource](https://github.com/nodesource/distributions)は、DebianおよびUbuntuNode.jsパッケージ用のAptリポジトリを提供します。これを使用してNode.jsをインストールします。NodeSourceは、[インストール手順](https://github.com/nodesource/distributions#installation-instructions)にある最新の安定バージョン(執筆時点ではv5.5.0)のインストールスクリプトを提供します。スクリプト curl
をダウンロードします。
curl -sL https://deb.nodesource.com/setup_5.x -o nodesource_setup.sh
スクリプトの内容は、 nano
または任意のテキストエディタを使用して開くことができます。
nano ./nodesource_setup.sh
次に、 nodesource_setup.sh
を実行します。スクリプトが -E
オプション sudo
を使用してそれらにアクセスできるように、ユーザーの環境変数を保持するように指示します。
sudo -E bash ./nodesource_setup.sh
スクリプトが完了すると、NodeSourceリポジトリがシステムで利用できるようになります。 apt-get
を使用して nodejs
パッケージをインストールできます。また、将来役立つ可能性のある一連の開発ツールを提供する build-essential
メタパッケージと、GitHubからプロジェクトを取得するためのGitバージョン制御システムもインストールします。
sudo apt-get install -y nodejs build-essential git
Parse Serverは、Node.jsの一般的なWebアプリケーションフレームワークである** Express **と組み合わせて使用するように設計されています。これにより、定義されたAPIに準拠するミドルウェアコンポーネントを特定のパスにインストールできます。 [Analysis Serverなど](https://github.com/ParsePlatform/parse-server-example.git)リポジトリには、このパターンの廃止の実装例が含まれています。
次の git
コマンドを使用してリポジトリを取得します。
git clone https://github.com/ParsePlatform/parse-server-example.git
クローンしたばかりの parse-server-example
ディレクトリを入力します。
cd ~/parse-server-example
npm
を使用して、現在のディレクトリに parse-server
を含む依存関係をインストールします。
npm install
npm
は、必要なすべてのモジュール parse-server
を取得し、それらを〜/ parse-server-example / node_modules
に格納します。
npm
を使用してサービスを開始します。これにより、 package.json
の start
プロパティで定義されたコマンドが実行されます。この場合、 nodeindex.js
を実行します。
npm start
> [email protected] start /home/sammy/parse-server-example
> node index.js
DATABASE_URI not specified, falling back to localhost.
parse-server-example running on port 1337.
** Ctrl-C **を押すと、実行中のアプリケーションをいつでも終了できます。
定義されたExpressアプリケーション index.js
はHTTP要求を parse-server
モジュールに渡し、モジュールはMongoDBインスタンスと通信し、そこで定義された関数 〜/ parse-server-example / cloud / main.js
を呼び出します。
この場合、Parse ServerAPIによって呼び出されるエンドポイントのデフォルトは次のとおりです。
http://your_server_IP/parse
別の端末では、 curl
を使用してこのエンドポイントをテストできます。これらのコマンドは特定のIPアドレスではなく localhost
を参照するため、必ず最初にサーバーにログインしてください。
X-Parse-Application-Id
ヘッダーを含む POST
リクエストを送信してレコードを作成し、アプリケーションとJSONとしてフォーマットされたデータを識別します。
curl -X POST \
- H "X-Parse-Application-Id: myAppId" \
- H "Content-Type: application/json" \
- d '{"score":1337,"playerName":"Sammy","cheatMode":false}' \
http://localhost:1337/parse/classes/GameScore
{" objectId":"fu7t4oWLuW","createdAt":"2016-02-02T18:43:00.659Z"}
送信するデータはMongoDBに保存され、 curl
を指定して GET
リクエストを送信することで取得できます。
curl -H "X-Parse-Application-Id: myAppId" http://localhost:1337/parse/classes/GameScore
{" results":[{"objectId":"GWuEydYCcd","score":1337,"playerName":"Sammy","cheatMode":false,"updatedAt":"2016-02-02T04:04:29.497Z","createdAt":"2016-02-02T04:04:29.497Z"}]}
以下に定義されている関数 〜/ parse-server-example / cloud / main.js
を実行します。
curl -X POST \
- H "X-Parse-Application-Id: myAppId" \
- H "Content-Type: application/json" \
- d '{}' \
http://localhost:1337/parse/functions/hello
{" result":"Hi"}
元の端末で、** Ctrl-C **を押して、実行中のバージョンのParseServerアプリケーションを停止します。
上記のように、6つの環境変数を使用してサンプルスクリプトを構成できます。
変数 | 説明 |
---|---|
DATABASE_URI | mongodb:// localhost:27017 / devなどのMongoDB接続URI |
CLOUD_CODE_MAIN | cloud / main.jsなどのParseCloudCode関数を含むファイルのパス |
APP_ID | アプリケーションの文字列識別子(例:myAppId |
MASTER_KEY | すべてのアプリケーションのセキュリティメカニズムをバイパスできるようにする秘密のマスターキー |
PARSE_MOUNT | Parse Server APIのパスを提供する必要があります(例:/ parse |
PORT | アプリケーションがリッスンする必要のあるポート(例:1337 |
export
コマンドでスクリプトを実行する前に、これらの値のいずれかを設定できます。例えば:
export APP_ID=fooApp
index.js
を読む価値はありますが、何が起こっているのかをより明確に理解するために、独自の短いバージョンの例を作成することもできます。エディタで新しいスクリプトを開きます。
nano my_app.js
そして、必要に応じて強調表示された値を変更して、以下を貼り付けます。
var express =require('express');var ParseServer =require('parse-server').ParseServer;
// Configure the Parse APIvar api =newParseServer({
databaseURI:'mongodb://localhost:27017/dev',
cloud: __dirname +'/cloud/main.js',
appId:'myOtherAppId',
masterKey:'myMasterKey'});
var app =express();
// Serve the Parse API on the /parse URL prefix
app.use('/myparseapp', api);
// Listen for connections on port 1337var port =9999;
app.listen(port,function(){
console.log('parse-server-example running on port '+ port +'.');});
ファイルを終了して保存し、Node.jsで実行します。
node my_app.js
parse-server-example running on port 9999.
同様に、** Ctrl-C **を押すと、いつでも my_app.js
を停止できます。上記のように、この例での my_app.js
の動作は、ポート9999でリッスンし、Parse Server / myparseapp
がインストールされていることを除いて、提供されている index.js
とほぼ同じです。したがって、エンドポイントURLは次のようになります。
http://あなたのサーバー IP:9999 / myparseapp
次のように curl
でテストできます。
curl -H "X-Parse-Application-Id: myOtherAppId" http://localhost:9999/myparseapp/classes/GameScore`
これで、Ubuntu環境でNode.jsアプリケーション(Parse Serverなど)を実行するための基本を理解する必要があります。 Parseからアプリケーションを完全に移行することは、より複雑なタスクになる可能性があり、コードの変更とインフラストラクチャの慎重な計画が必要になります。
その他のUbuntuチュートリアルについては、[Tencent Cloud + Community](https://cloud.tencent.com/developer?from=10680)にアクセスして詳細を確認してください。
参照:「Ubuntu14.04でParseServerを実行する方法」
Recommended Posts