Вступление
Parse - это платформа Mobile Backend как сервис, которой Facebook владеет с 2013 года. В январе 2016 года Parse announce объявит, что размещенные на нем службы будут закрыты в январе 2017 года.
Чтобы помочь своим пользователям перейти от службы, Parse выпустила версию бэкэнда с открытым исходным кодом под названием * Parse Server *, которую можно развернуть в средах, работающих под управлением Node.js и MongoDB.
Это руководство дополняет официальную документацию подробными инструкциями по установке Parse Server в системе Ubuntu 14.04, такой как DigitalOcean Droplet. Он предназначен в первую очередь как отправная точка для разработчиков Parse, которые рассматривают возможность миграции своих приложений, и его следует читать вместе с официальным Parse Server Guide.
Предпосылки
В этом руководстве предполагается, что у вас есть чистая система Ubuntu 14.04, сконфигурированная с пользователем без полномочий root с привилегиями + sudo +
для административных задач. Вы можете просмотреть руководства из серии New Ubuntu 14.04 Server Checklist.
Кроме того, вашей системе потребуется работающий экземпляр MongoDB. Вы можете начать с работы через Как установить MongoDB в Ubuntu 14.04. MongoDB также можно автоматически установить на новую каплю, добавив this script к своим данным пользователя при ее создании. Посетите this tutorial, чтобы узнать больше о пользовательских данных Droplet.
Как только ваша система сконфигурирована с пользователем + sudo +
и MongoDB, вернитесь к этому руководству и продолжайте.
Шаг 1 - Установите Node.js и инструменты разработки
Начните с изменения текущего рабочего пути на домашний каталог вашего пользователя + sudo +
:
cd ~
NodeSource предлагает хранилище Apt для пакетов Debian и Ubuntu Node.js. Мы будем использовать его для установки Node.js. NodeSource предлагает скрипт установки для последней стабильной версии (v5.5.0 на момент написания этой статьи), которую можно найти в инструкциях installation. Загрузите скрипт с помощью + curl +
:
curl -sL https://deb.nodesource.com/ -o nodesource_setup.sh
Вы можете просмотреть содержимое этого скрипта, открыв его с помощью + nano +
или вашего текстового редактора:
nano ./nodesource_setup.sh
Затем запустите + nodeource_setup.sh +
. Параметр + -E +
для + sudo +
говорит ему о необходимости сохранения переменных среды пользователя, чтобы они могли быть доступны сценарию:
sudo -E bash ./nodesource_setup.sh
После завершения сценария в системе должны появиться репозитории NodeSource. Мы можем использовать + apt-get
для установки пакета` + nodejs`. Мы также установим метапакет + build-essential +
, который предоставляет ряд инструментов разработки, которые могут пригодиться позже, и систему контроля версий Git для извлечения проектов из GitHub:
sudo apt-get install -y nodejs build-essential git
Шаг 2 - Установите пример приложения Parse Server
Parse Server предназначен для использования вместе с * Express *, популярной платформой веб-приложений для Node.js, которая позволяет компонентам промежуточного программного обеспечения, соответствующим определенному API, монтироваться по заданному пути. Репозиторий parse-server-example содержит примерный пример реализации этого шаблона.
Получить репозиторий с помощью + 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 +
.
Шаг 3 - протестируйте образец приложения
Используйте + npm +
для запуска службы. Это запустит команду, определенную в свойстве + start +
+ package.json
. В этом случае он запускает + node index.js
:
npm start
Output> [email protected] start /home//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 Server API по умолчанию является:
+ Http: /// синтаксического анализа +
В другом терминале вы можете использовать + 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":"","createdAt":""}
Отправленные вами данные хранятся в MongoDB и могут быть получены с помощью + curl +
для отправки запроса + GET +
:
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 *, чтобы остановить запущенную версию приложения Parse Server.
Как написано, пример сценария может быть настроен с помощью шести https://www.digitalocean.com/community/tutorials/how-to-read-and-set-environmental-and-shell-variables-on-a- linux-vps [переменные окружения]:
Variable | Description |
---|---|
|
A MongoDB connection URI, like |
|
A path to a file containing Parse Cloud Code functions, like |
|
A string identifier for your app, like |
|
A secret master key which allows you to bypass all of the app’s security mechanisms |
|
The path where the Parse Server API should be served, like |
|
The port the app should listen on, like |
Вы можете установить любое из этих значений перед запуском скрипта с помощью команды + export +
. Например:
export APP_ID=
Стоит прочитать содержимое + index.js +
, но чтобы получить более четкое представление о том, что происходит, вы также можете написать собственную более короткую версию примера. Откройте новый скрипт в вашем редакторе:
nano my_app.js
И вставьте следующее, изменив выделенные значения, где это необходимо:
~ / Анализирующие-Server-пример / my_app.js
var express = require('express');
var ParseServer = require('parse-server').ParseServer;
// Configure the Parse API
var api = new ParseServer({
databaseURI: '',
cloud: __dirname + '',
appId: '',
masterKey: ''
});
var app = express();
// Serve the Parse API on the URL prefix
app.use('', api);
// Listen for connections on port 1337
var port = ;
app.listen(port, function() {
console.log('parse-server-example running on port ' + port + '.');
});
Выйдите и сохраните файл, затем запустите его с Node.js:
node my_app.js
Outputparse-server-example running on port 9999.
Опять же, вы можете нажать * Ctrl-C * в любое время, чтобы остановить + my app.js
. Как написано выше, пример + my_app.js +
будет вести себя почти идентично предоставленному + index.js +
, за исключением того, что он будет прослушивать порт 9999, при этом Parse Server будет смонтирован в + / myparseapp +
, так что конечная точка URL выглядит так:
Http: //: 9999 / myparseapp
И это можно проверить с помощью + curl +
следующим образом:
curl -H "X-Parse-Application-Id: " http://localhost://classes/GameScore`
Заключение
Теперь вы должны знать основы работы приложения Node.js, такого как Parse Server, в среде Ubuntu. Полная миграция приложения из Parse, вероятно, будет более сложной задачей, требующей изменения кода и тщательного планирования инфраструктуры.
Более подробные сведения об этом процессе см. Во втором руководстве этой серии: https://www.digitalocean.com/community/tutorials/how-to-migrate-a-parse-app-to-parse-server-on- ubuntu-14-04 [Как перенести приложение Parse на сервер Parse в Ubuntu 14.04]. Вам также следует обратиться к официальному Parse Server Guide, особенно к разделу на migrating существующего приложения Parse. .