Ответ 1
Самостоятельный сервер Parse Server на Heroku
Настройка Heroku, MongoDB и Parse
- Посетите https://signup.heroku.com/ и зайдите в аккаунт
- Подтвердите свою электронную почту и войдите в Heroku
- Перейдите в Развертывание сервера анализа в Heroku
- Нажмите "Развернуть на Heroku"
- Дайте серверу синтаксического анализа имя
- Пока не пропустите APP_ID приложения и MASTER_KEY, мы установим это на более позднем этапе.
- Нажмите "Развернуть бесплатно"
- Если появится окно ниже, введите данные своей кредитной карты, чтобы подтвердить свою учетную запись. Не беспокойтесь, вам не придется платить, если вы не обновите свой аккаунт позже. Это просто мера безопасности, которую Heroku имеет для предотвращения злоупотреблений.
- Heroku создаст ваше приложение. В фоновом режиме он также создаст репозиторий .git для вас и клонирует содержимое официального примера синтаксического анализа git repo, создать базу данных MongoDB и настроить приложение Heroku для использования этой БД.
- Когда приложение будет создано, вы попадете на панель инструментов Heroku или можете попасть туда, войдя в систему, нажав "Персональные приложения", а затем щелкнув имя вашего сервера анализа.
- На панели инструментов приложения нажмите "Настройки", затем нажмите "Показать конфиг vars"
- Заполните приложение APP_ID и MASTER_KEY. Если теперь у вас есть приложение на Parse.com, вы можете использовать те же самые ключи, которые он использует. Вы можете gey в
https://www.parse.com/apps/<APP_NAME>/edit#keys
, где<APP_NAME>
- имя вашего приложения. Если вы создаете новое приложение, вы можете генерировать случайные ключи здесь. Вы можете добавить новые ключи для любых sdks, которые вы планируете использовать, я добавляю один для javascript sdk здесь.
- Обратите внимание на значение для MONGOLAB_URI, вам понадобится это позже, если вы хотите перенести существующие данные Parse на новый DB
- Прокрутите вниз и отметьте git Url и домен Heroku для своего приложения, вам понадобятся эти более поздние версии
- Установите Heroku Toolbelt, который является инструментом командной строки для управления вашими приложениями Heroku.
- Откройте приглашение на терминал и введите
$ heroku login
, введите адрес электронной почты и пароль Heroku. -
Введите
$ heroku git:clone -a <MY_APP_NAME>
(где<MY_APP_NAME>
- имя вашего приложения heroku), чтобы создать локальную копию вашего репо сервера, вы также можете использовать URL-адрес git, который мы видели ранее. Когда вы клонируете репо, вы увидите сообщение "предупреждение: вы, похоже, клонировали пустой репозиторий". Будет создана папка приложения, но она будет содержать только стандартные файлы git и без синтаксического анализа. Чтобы исправить это. Перейдите в официальный пример синтаксического анализа git repo, загрузите zip файл репо. Извлеките папку, перетащите все файлы и папки из папки parse-server-example-master в папку приложения. -
Вернитесь в терминал, введите
$ cd <MY_APP_NAME>
, чтобы перейти в репо
Включить CORS (чтобы вы могли использовать API из других доменов)
- На вашем жестком диске найдите и откройте локальную копию репо, которую мы только что создали.
- В папке откройте
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
- Откройте
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
});
- Вернитесь в окно терминала, убедитесь, что вы все еще находитесь в папке клонирования repo, и введите ниже, чтобы вносить изменения в Heroku:
.
$ git add .
$ git commit -am "make it better"
$ git push heroku master
Проверьте свой новый Parse Server
- Перейдите к jsFiddle страница
- Измените
<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'
- Вы должны получить предупреждение ниже, сообщив вам, что ваш новый Parse-сервер работает правильно.
Примечание:
Если вы используете инструмент jsfiddle с несколькими экземплярами сервера синтаксического анализа, вы можете получить ошибку "недопустимый токен сеанса". Если это произойдет, откройте консоль dev и удалите все "синтаксические" ключи из локального хранилища, после чего он должен работать:
Перенесите существующие данные из Parse
Вы должны сделать это хотя бы один раз с помощью тестового приложения перед переносом производственного приложения. Кроме того, похоже, что устаревшее files
из вашего старого приложения еще не может перейти, см. этот вопрос GitHub
- Перед миграцией, если у вашего нового MongoDB есть данные, миграция завершится с ошибкой. Если вы только что протестировали сервер и создали и создали объект, перейдите к
https://dashboard.heroku.com/apps/<MY_HEROKU_APP_NAME>/resources
, нажмите "MongoLab" рядом с ним, а затем на следующей странице нажмите "Удалить все коллекции" - Перейдите к
https://dashboard.parse.com/apps/<APP_NAME>/settings/general
, где<APP_NAME>
- имя вашего синтаксического анализа. - Прокрутите страницу вниз и нажмите "Миграция"
- В модальном режиме в серой области (которая не очень похожа на вход...) введите
MONGOLAB_URI
, который мы записали ранее - Нажмите "Начать миграцию"
- Когда миграция завершена, нажмите "Завершить", затем во всплывающем окне нажмите "ОК", когда миграция станет окончательной, все ваши данные будут в вашей новой базе данных MongoDB.
- Теперь панель управления Parse продолжит показывать ваши данные, которые теперь живут в новой базе данных. Чтобы проверить все, вернитесь к тесту jsFiddle, который мы использовали ранее, и снова запустите его. Теперь перейдите на панель управления Parse, и вы увидите новый класс и строку. Примечание, что, когда я использовал новую панель управления Parse, я мог видеть количество строк, но область строк была пустой. Я вернулся к старой панели управления Parse и мог видеть все хорошо.