序章

Parseは、2013年からFacebookが所有するサービスプラットフォームとしてのモバイルバックエンドです。 2016年1月、Parse は、ホストされているサービスが2017年1月にシャットダウンすることを発表しました

ユーザーがサービスから移行できるように、Parseは Parse Server と呼ばれるバックエンドのオープンソースバージョンをリリースしました。これは、Node.jsとMongoDBを実行している環境にデプロイできます。

このガイドは、DigitalOceanDropletなどのUbuntu14.04システムにParseServerをインストールするための詳細な手順で公式ドキュメントを補足します。 これは、何よりもまず、アプリケーションの移行を検討しているParse開発者の出発点として意図されており、公式の Parse ServerGuideと併せて読む必要があります。

前提条件

このガイドは、root以外のユーザーで構成されたクリーンなUbuntu14.04システムがあることを前提としています。 sudo 管理タスクの特権。 新しいUbuntu14.04サーバーチェックリストシリーズのガイドを確認することをお勧めします。

さらに、システムにはMongoDBの実行中のインスタンスが必要です。 Ubuntu14.04にMongoDBをインストールする方法から始めることができます。 MongoDBは、作成時にこのスクリプトをユーザーデータに追加することで、新しいドロップレットに自動的にインストールすることもできます。 ドロップレットユーザーデータの詳細については、このチュートリアルをご覧ください。

システムが sudo ユーザーとMongoDBの場合は、このガイドに戻って続行してください。

ステップ1—Node.jsと開発ツールをインストールします

現在の作業パスを sudo ユーザーのホームディレクトリ:

  1. cd ~

NodeSource は、DebianおよびUbuntuNode.jsパッケージ用のAptリポジトリを提供します。 これを使用してNode.jsをインストールします。 NodeSourceは、最新の安定版リリース(この記事の執筆時点ではv5.5.0)のインストールスクリプトを提供しています。これは、インストール手順にあります。 スクリプトをダウンロードする curl:

  1. curl -sL https://deb.nodesource.com/setup_5.x -o nodesource_setup.sh

このスクリプトを開くと、このスクリプトの内容を確認できます。 nano、または選択したテキストエディタ:

  1. nano ./nodesource_setup.sh

次に、実行します nodesource_setup.sh. The -E オプション sudo スクリプトからアクセスできるように、ユーザーの環境変数を保持するように指示します。

  1. sudo -E bash ./nodesource_setup.sh

スクリプトが終了すると、NodeSourceリポジトリがシステムで利用できるようになります。 使用できます apt-get インストールするには nodejs パッケージ。 また、インストールします build-essential 後で役立つ可能性のあるさまざまな開発ツールを提供するメタパッケージと、GitHubからプロジェクトを取得するためのGitバージョン管理システム:

  1. sudo apt-get install -y nodejs build-essential git

ステップ2—サンプルのParseServerアプリをインストールする

Parse Serverは、Node.jsの一般的なWebアプリケーションフレームワークである Express と組み合わせて使用するように設計されており、定義されたAPIに準拠するミドルウェアコンポーネントを特定のパスにマウントできます。 parse-server-example リポジトリには、このパターンのスタブアウトされた実装例が含まれています。

でリポジトリを取得します git:

  1. git clone https://github.com/ParsePlatform/parse-server-example.git

入力します parse-server-example クローンを作成したディレクトリ:

  1. cd ~/parse-server-example

使用する npm を含む依存関係をインストールする parse-server、現在のディレクトリ:

  1. npm install

npm に必要なすべてのモジュールをフェッチします parse-server に保存します ~/parse-server-example/node_modules.

ステップ3—サンプルアプリケーションをテストする

使用する npm サービスを開始します。 これにより、で定義されたコマンドが実行されます。 start のプロパティ package.json. この場合、実行されます node index.js:

  1. npm start
Output
> [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.

この場合、ParseServerAPI呼び出しのエンドポイントはデフォルトで次のようになります。

http://your_server_IP/parse

別の端末では、 curl このエンドポイントをテストします。 これらのコマンドは参照しているため、最初にサーバーにログインしていることを確認してください localhost 特定のIPアドレスの代わりに。

を送信してレコードを作成します POST でリクエスト X-Parse-Application-Id アプリケーションを識別するためのヘッダーと、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
Output
{"objectId":"fu7t4oWLuW","createdAt":"2016-02-02T18:43:00.659Z"}

送信したデータはMongoDBに保存されており、 curl 送信するには GET リクエスト:

  1. curl -H "X-Parse-Application-Id: myAppId" http://localhost:1337/parse/classes/GameScore
Output
{"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
Output
{"result":"Hi"}

ステップ4—サンプルアプリケーションを構成する

元の端末で、 Ctrl-C を押して、実行中のバージョンのParseServerアプリケーションを停止します。

記述されているように、サンプルスクリプトは、6つの環境変数を使用して構成できます。

変数 説明
DATABASE_URI 次のようなMongoDB接続URI mongodb://localhost:27017/dev
CLOUD_CODE_MAIN ParseCloudCode関数を含むファイルへのパス。 cloud/main.js
APP_ID アプリの文字列識別子。 myAppId
MASTER_KEY アプリのすべてのセキュリティメカニズムをバイパスできる秘密のマスターキー
PARSE_MOUNT 次のように、ParseServerAPIが提供されるパス。 /parse
PORT アプリがリッスンする必要のあるポート 1337

スクリプトを実行する前に、これらの値のいずれかを設定できます。 export 指図。 例えば:

  1. export APP_ID=fooApp

の内容を一読する価値があります index.js、しかし、何が起こっているのかをより明確に把握するために、例の独自の短いバージョンを作成することもできます。 エディターで新しいスクリプトを開きます。

  1. nano my_app.js

そして、必要に応じて強調表示された値を変更して、以下を貼り付けます。

〜/ parse-server-example / my_app.js
var express = require('express');
var ParseServer = require('parse-server').ParseServer;

// Configure the Parse API
var api = new ParseServer({
  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 1337
var port = 9999;
app.listen(port, function() {
    console.log('parse-server-example running on port ' + port + '.');
});

ファイルを終了して保存し、Node.jsで実行します。

  1. node my_app.js
Output
parse-server-example running on port 9999.

ここでも、いつでもCtrl-Cを押して停止できます my_app.js. 上に書いたように、サンプル my_app.js 提供されたものとほぼ同じように動作します index.js、ただし、ポート9999でリッスンし、解析サーバーは /myparseapp、エンドポイントURLが次のようになるようにします。

http:// your_server_IP :9999 / myparseapp

そしてそれはでテストすることができます curl そのようです:

  1. curl -H "X-Parse-Application-Id: myOtherAppId" http://localhost:9999/myparseapp/classes/GameScore`

結論

これで、Ubuntu環境でParseServerのようなNode.jsアプリケーションを実行するための基本を理解する必要があります。 Parseからアプリを完全に移行することは、コードの変更とインフラストラクチャの慎重な計画を必要とする、より複雑な作業になる可能性があります。

このプロセスの詳細については、このシリーズの2番目のガイド Ubuntu14.04で解析アプリを解析サーバーに移行する方法を参照してください。 また、公式の Parseサーバーガイド、特に既存のParseアプリの移行に関するセクションも参照してください。