Запуск Parse Server на Ubuntu 14.04
Java, Ubuntu | Комментировать запись
Parse – это мобильный бэкэнд, сервисная платформа, с 2013 года принадлежащая компании Facebook. В январе 2016 года команда Parse объявила о том, что все размещённые на данной платформе сервисы будут отключены к январю 2017.
Чтобы помочь своим пользователям перейти с этой платформы на другую, Parse выпустил открытую версию бэкэнда под названием Parse Server, которую можно развернуть в среде Node.js и MongoDB.
Данное руководство поможет установить Parse Server на сервер Ubuntu 14.04. в первую очередь оно предназначено для разработчиков, которые хотят переместить свои приложения.
Примечание: Рекомендуется выполнять все инструкции вместе с официальным руководством Parse Server.
Требования
- Чистый сервер Ubuntu 14.04;
- Не-root пользователь с доступом к sudo (о создании такого пользователя можно прочитать здесь);
- Предварительно установленная MongoDB (инструкции по установке можно найти здесь).
1: Установка Node.js и инструментов разработки
Откройте домашний каталог пользователя:
cd ~
На NodeSource можно найти apt-репозиторий пакетов Node.js для систем Debian и Ubuntu. Используйте его для установки Node.js. На NodeSource можно найти скрипт установки последнего стабильного релиза (на момент написания статьи это v5.5.0). Загрузите скрипт при помощи команды:
curl -sL https://deb.nodesource.com/setup_5.x -o nodesource_setup.sh
Чтобы просмотреть содержимое скрипта, откройте его в текстовом редакторе:
nano ./nodesource_setup.sh
После этого можно запустить nodesource_setup.sh. Флаг -E команды sudo сохраняет переменные среды и даёт скрипту доступ к ним.
sudo -E bash ./nodesource_setup.sh
После выполнения скрипта репозиторий NodeSource будет доступен в системе. Установить пакет nodejs можно при помощи apt-get. Кроме того, нужно установить метапакет build-essential и систему контроля версий Git.
sudo apt-get install -y nodejs build-essential git
2: Установка приложения Parse Server
Parse Server предназначен дл работы в связке с Express, популярным веб-фреймворком Node.js. Репозиторий 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
> parse-server-example@1.0.0 start /home/8host/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://your_server_IP/parse
Откройте эту ссылку в другом терминале для тестирования.
Примечание: Сначала нужно войти на сервер, поскольку эти команды ссылаются на 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":"8host","cheatMode":false}' \
http://localhost:1337/parse/classes/GameScore
{"objectId":"fu7t4oWLuW","createdAt":"2016-02-02T18:43:00.659Z"}
Отправленные данные хранятся в MongoDB; чтобы их извлечь, отправьте запрос GET при помощи команды curl.
curl -H "X-Parse-Application-Id: myAppId" http://localhost:1337/parse/classes/GameScore
{"results":[{"objectId":"GWuEydYCcd","score":1337,"playerName":"8host","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.
Такой скрипт можно настроить при помощи шести переменных среды:
Переменная | Описание |
DATABASE_URI | URI для подключения к MongoDB (например, mongodb://localhost:27017/dev) |
CLOUD_CODE_MAIN | Путь в файлу, хранящему функции Parse Cloud Code (например, cloud/main.js) |
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 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:
node my_app.js
parse-server-example running on port 9999.
Остановить приложение my_app.js можно при помощи клавиш Ctrl-C. Поведение приложения my_app.js похоже на приложение index.js, однако my_app.js прослушивает порт 9999, а Parse Server смонтирован в /myparseapp. Таким образом, ссылка будет иметь следующий вид:
http://IP_сервера:9999/myparseapp
Чтобы проверить ссылку, используйте curl:
curl -H "X-Parse-Application-Id: myOtherAppId" http://localhost:9999/myparseapp/classes/GameScore`
Заключение
Теперь у вас есть базовые навыки работы с приложениями Node.js, такими как Parse Server, в среде Ubuntu. Перемещение приложения с платформы Parse требует изменений кода и тщательного планирования инфраструктуры. Подробнее об этом можно прочитать в официальном руководстве Parse Server.
Tags: MongoDB, Node.js, Parse, Parse Server, Ubuntu 14.04