Как запустить Parse Server в Ubuntu 14.04

Вступление

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

DATABASE_URI

A MongoDB connection URI, like mongodb://localhost:27017/dev

CLOUD_CODE_MAIN

A path to a file containing Parse Cloud Code functions, like cloud/main.js

APP_ID

A string identifier for your app, like myAppId

MASTER_KEY

A secret master key which allows you to bypass all of the app’s security mechanisms

PARSE_MOUNT

The path where the Parse Server API should be served, like /parse

PORT

The port the app should listen on, like 1337

Вы можете установить любое из этих значений перед запуском скрипта с помощью команды + 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. .

Related