Подтвердить что ты не робот

Как я могу разместить собственный сервер Parse на Heroku с помощью MongoDB?

(Чтобы быть ясным, я задаю этот вопрос, чтобы предоставить ответ, который я нашел, чтобы помочь другим, которые были также затронуты закрытием Парса)

Parse.com недавно объявили, что закрывают магазин в январе 2017 года, но, к счастью, они сделали свое программное обеспечение Parse Server с открытым исходным кодом, чтобы мы могли размещать собственные экземпляры сервера Parse.

Я рассмотрел различные варианты, доступные для размещения Parse Server, и решил разместить мой на Heroku

Мне нравился Parse, потому что он был настолько прост в использовании, и у меня нет реального опыта создания бэкэнд. Я попытался выполнить несколько руководств в Интернете, но обнаружил, что их все немного сложно понять с неопределенными шагами или шагами, которые забирают вас на кроличью нору на другом сайте, устанавливая кучу инструментов, и все становится немного запутанным.

Как я могу разместить Parse Server на heroku, настроить его для приема запросов перекрестных доменов из моего приложения, создания базы данных MongoDB и переноса всех моих данных из Parse в новую базу данных?

4b9b3361

Ответ 1

Самостоятельный сервер Parse Server на Heroku


Настройка Heroku, MongoDB и Parse

введите описание изображения здесь


  1. Дайте серверу синтаксического анализа имя
  2. Пока не пропустите APP_ID приложения и MASTER_KEY, мы установим это на более позднем этапе.
  3. Нажмите "Развернуть бесплатно"

введите описание изображения здесь


  1. Если появится окно ниже, введите данные своей кредитной карты, чтобы подтвердить свою учетную запись. Не беспокойтесь, вам не придется платить, если вы не обновите свой аккаунт позже. Это просто мера безопасности, которую Heroku имеет для предотвращения злоупотреблений.

введите описание изображения здесь


  1. Heroku создаст ваше приложение. В фоновом режиме он также создаст репозиторий .git для вас и клонирует содержимое официального примера синтаксического анализа git repo, создать базу данных MongoDB и настроить приложение Heroku для использования этой БД.
  2. Когда приложение будет создано, вы попадете на панель инструментов Heroku или можете попасть туда, войдя в систему, нажав "Персональные приложения", а затем щелкнув имя вашего сервера анализа.
  3. На панели инструментов приложения нажмите "Настройки", затем нажмите "Показать конфиг vars"

введите описание изображения здесь


  1. Заполните приложение APP_ID и MASTER_KEY. Если теперь у вас есть приложение на Parse.com, вы можете использовать те же самые ключи, которые он использует. Вы можете gey в https://www.parse.com/apps/<APP_NAME>/edit#keys, где <APP_NAME> - имя вашего приложения. Если вы создаете новое приложение, вы можете генерировать случайные ключи здесь. Вы можете добавить новые ключи для любых sdks, которые вы планируете использовать, я добавляю один для javascript sdk здесь.

введите описание изображения здесь


  1. Обратите внимание на значение для MONGOLAB_URI, вам понадобится это позже, если вы хотите перенести существующие данные Parse на новый DB
  2. Прокрутите вниз и отметьте git Url и домен Heroku для своего приложения, вам понадобятся эти более поздние версии

введите описание изображения здесь


  1. Установите Heroku Toolbelt, который является инструментом командной строки для управления вашими приложениями Heroku.
  2. Откройте приглашение на терминал и введите $ heroku login, введите адрес электронной почты и пароль Heroku.
  3. Введите $ heroku git:clone -a <MY_APP_NAME> (где <MY_APP_NAME> - имя вашего приложения heroku), чтобы создать локальную копию вашего репо сервера, вы также можете использовать URL-адрес git, который мы видели ранее. Когда вы клонируете репо, вы увидите сообщение "предупреждение: вы, похоже, клонировали пустой репозиторий". Будет создана папка приложения, но она будет содержать только стандартные файлы git и без синтаксического анализа. Чтобы исправить это. Перейдите в официальный пример синтаксического анализа git repo, загрузите zip файл репо. Извлеките папку, перетащите все файлы и папки из папки parse-server-example-master в папку приложения.

  4. Вернитесь в терминал, введите $ cd <MY_APP_NAME>, чтобы перейти в репо

Включить CORS (чтобы вы могли использовать API из других доменов)

  1. На вашем жестком диске найдите и откройте локальную копию репо, которую мы только что создали.
  2. В папке откройте package.json и добавьте "cors": "*" в dependencies следующим образом:

.

  "dependencies": {
    "express": "~4.2.x",
    "kerberos": "~0.0.x",
    "parse": "~1.6.12",
    "parse-server": "~2.0",    // <= don't forget this comma
    "cors": "*"                // add this line
  }

Примечание

Обязательно удалите вышеуказанные комментарии в своем фактическом коде, поскольку он не будет действителен. JSON

  1. Откройте index.js и внесите следующие изменения:

.

var express = require('express');  // find this line in the file
var cors = require('cors') // add this line below it

//....


//var databaseUri = process.env.DATABASE_URI || process.env.MONGOLAB_URI // old name, you may need to change this for new deployments
var databaseUri = process.env.DATABASE_URI || process.env.MONGODB_URI  // changed to MONGODB_URI in Heroku!

//....

var app = express();  // find this line in the file
app.use(cors()); // add this line below it

//Add declarations for any keys you plan to use as shown below
var api = new ParseServer({
  databaseURI: databaseUri || 'mongodb://localhost:27017/dev',
  cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js',
  appId: process.env.APP_ID || 'myAppId',
  masterKey: process.env.MASTER_KEY || '',
  serverURL: process.env.SERVER_URL || 'http://localhost:1337',
  javascriptKey: process.env.JAVASCRIPT_KEY || '',  //** add this line no need to set values, they will be overwritten by heroku config vars
  restAPIKey: process.env.REST_API_KEY || '', //** add this line
  dotNetKey: process.env.DOT_NET_KEY || '', //** add this line
  clientKey: process.env.CLIENT_KEY || '', //** add this line
});
  1. Вернитесь в окно терминала, убедитесь, что вы все еще находитесь в папке клонирования repo, и введите ниже, чтобы вносить изменения в Heroku:

.

$ git add .
$ git commit -am "make it better"
$ git push heroku master

Проверьте свой новый Parse Server

  1. Перейдите к jsFiddle страница
  2. Измените <MY_APP_ID>, <MY_JS_KEY>, <MY_HEROKU_APP_NAME> в скрипте на соответствующие значения для вашего приложения, затем нажмите "Запустить"

.

Parse.initialize('<MY_APP_ID>', '<MY_JS_KEY>');
Parse.serverURL = 'https://<MY_HEROKU_APP_NAME>.herokuapp.com/Parse'
  1. Вы должны получить предупреждение ниже, сообщив вам, что ваш новый Parse-сервер работает правильно.

введите описание изображения здесь

Примечание:

Если вы используете инструмент jsfiddle с несколькими экземплярами сервера синтаксического анализа, вы можете получить ошибку "недопустимый токен сеанса". Если это произойдет, откройте консоль dev и удалите все "синтаксические" ключи из локального хранилища, после чего он должен работать:

введите описание изображения здесь


Перенесите существующие данные из Parse

Вы должны сделать это хотя бы один раз с помощью тестового приложения перед переносом производственного приложения. Кроме того, похоже, что устаревшее files из вашего старого приложения еще не может перейти, см. этот вопрос GitHub

  1. Перед миграцией, если у вашего нового MongoDB есть данные, миграция завершится с ошибкой. Если вы только что протестировали сервер и создали и создали объект, перейдите к https://dashboard.heroku.com/apps/<MY_HEROKU_APP_NAME>/resources, нажмите "MongoLab" рядом с ним, а затем на следующей странице нажмите "Удалить все коллекции"
  2. Перейдите к https://dashboard.parse.com/apps/<APP_NAME>/settings/general, где <APP_NAME> - имя вашего синтаксического анализа.
  3. Прокрутите страницу вниз и нажмите "Миграция"
  4. В модальном режиме в серой области (которая не очень похожа на вход...) введите MONGOLAB_URI, который мы записали ранее
  5. Нажмите "Начать миграцию"

введите описание изображения здесь


  1. Когда миграция завершена, нажмите "Завершить", затем во всплывающем окне нажмите "ОК", когда миграция станет окончательной, все ваши данные будут в вашей новой базе данных MongoDB.

введите описание изображения здесь


  1. Теперь панель управления Parse продолжит показывать ваши данные, которые теперь живут в новой базе данных. Чтобы проверить все, вернитесь к тесту jsFiddle, который мы использовали ранее, и снова запустите его. Теперь перейдите на панель управления Parse, и вы увидите новый класс и строку. Примечание, что, когда я использовал новую панель управления Parse, я мог видеть количество строк, но область строк была пустой. Я вернулся к старой панели управления Parse и мог видеть все хорошо.