MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak mogę hostować własny serwer Parse w Heroku przy użyciu MongoDB?

Własny hosting Parse Server na Heroku

Skonfiguruj Heroku, MongoDB i Parse

  1. Odwiedź https://signup.heroku.com/ i załóż konto
  2. Zweryfikuj swój adres e-mail i zaloguj się do Heroku
  3. Przejdź do wdrażania serwera analizy w Heroku
  4. Kliknij „Wdróż w Heroku”

  1. Nadaj nazwę swojemu serwerowi analizowania
  2. Na razie pomiń APP_ID i MASTER_KEY aplikacji, ustawimy to w późniejszym kroku.
  3. Kliknij „Wdróż za darmo”

  1. Jeśli pojawi się poniższe pole, wprowadź dane karty kredytowej, aby zweryfikować konto. Nie martw się, opłata nie zostanie naliczona, chyba że uaktualnisz swoje konto później . Jest to po prostu środek bezpieczeństwa, który Heroku stosuje, aby zapobiec nadużyciom.

  1. Heroku utworzy Twoją aplikację. W tle utworzy również repozytorium .git dla Ciebie i sklonuje zawartość oficjalnego repozytorium git parse-server-example, utworzy bazę danych MongoDB i skonfiguruje aplikację Heroku do korzystania z tej bazy danych.
  2. Po utworzeniu aplikacji zostaniesz przeniesiony do jej pulpitu nawigacyjnego Heroku lub możesz się tam dostać, logując się, klikając „Aplikacje osobiste”, a następnie klikając nazwę swojego serwera parsowania
  3. Na pulpicie nawigacyjnym aplikacji kliknij „Ustawienia”, a następnie „Pokaż zmienne konfiguracyjne”

  1. Wpisz APP_ID i MASTER_KEY swojej aplikacji. Jeśli masz teraz aplikację na Parse.com, możesz użyć tych samych kluczy, których używa. Możesz kliknąć na https://www.parse.com/apps//edit#keys gdzie to nazwa Twojej aplikacji. Jeśli tworzysz nową aplikację, możesz tutaj wygenerować losowe klucze. Możesz dodać nowe klucze dla dowolnego pakietu sdk, którego planujesz użyć, dodaję tutaj jeden dla pakietu sdk javascript.

  1. Zanotuj wartość MONGOLAB_URI, będziesz jej potrzebować później, jeśli chcesz przenieść istniejące dane Parse do nowej bazy danych
  2. Przewiń w dół i zanotuj adres URL Git i domenę Heroku dla swojej aplikacji, będziesz ich potrzebować później

  1. Zainstaluj Heroku Toolbelt, który jest narzędziem wiersza poleceń do zarządzania aplikacjami Heroku.

  2. Otwórz monit terminala i wpisz $ heroku login , wprowadź swój adres e-mail Heroku i hasło

  3. Wpisz $ heroku git:clone -a (gdzie to nazwa twojej aplikacji heroku), aby utworzyć lokalną kopię repozytorium kodu serwera, możesz również użyć adresu url git, który widzieliśmy wcześniej. Kiedy sklonujesz repozytorium, zobaczysz komunikat „ostrzeżenie:wygląda na to, że sklonowałeś puste repozytorium”. Folder aplikacji zostanie utworzony, ale będzie zawierał tylko standardowe pliki git i bez serwera parsowania. Aby to naprawić. Przejdź do oficjalnego repozytorium git parse-server-example, pobierz plik zip repozytorium. Wyodrębnij folder, przeciągnij wszystkie pliki i foldery z folderu parse-server-example-master do folderu swojej aplikacji.

  4. Wróć do terminala, wpisz $ cd przenieść się do repozytorium

Włącz CORS (aby móc korzystać z API z innych domen)

  1. Na dysku twardym znajdź i otwórz lokalną kopię repozytorium, które właśnie utworzyliśmy
  2. W folderze otwórz package.json i dodaj "cors":"*" do zależności tak:

.

  "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
  }

UWAGA

Pamiętaj, aby usunąć powyższe komentarze z rzeczywistego kodu, ponieważ nie będzie to prawidłowy JSON

  1. Otwórz index.js i wprowadź te zmiany:

.

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. Wróć do okna terminala, upewnij się, że nadal jesteś w folderze sklonowanego przez nas repozytorium i wpisz poniżej, aby wprowadzić zmiany do Heroku:

.

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

Przetestuj swój nowy serwer Parse

  1. Przejdź do tej strony jsFiddle
  2. Zmień , , na skrzypcach do odpowiednich wartości dla Twojej aplikacji, a następnie kliknij „Uruchom”

.

Parse.initialize('<MY_APP_ID>', '<MY_JS_KEY>');
Parse.serverURL = 'https://<MY_HEROKU_APP_NAME>.herokuapp.com/Parse'
  1. Powinieneś otrzymać poniższy alert informujący, że Twój nowy serwer Parse działa poprawnie

UWAGA:

Jeśli używasz narzędzia jsfiddle z wieloma instancjami serwera analizującego, może pojawić się błąd „nieprawidłowy token sesji”. Jeśli tak się stanie, otwórz konsolę programistyczną i usuń wszystkie klucze „parsowania” z pamięci lokalnej, po czym powinno działać:

Przeprowadź migrację istniejących danych z Parse

Należy to zrobić co najmniej raz z aplikacją testową przed migracją aplikacji produkcyjnej. Wydaje się również, że starsze pliki ze starej aplikacji może jeszcze nie zostać przeniesiony, zobacz ten problem z GitHub

  1. Przed migracją , jeśli nowa baza danych MongoDB zawiera dane, migracja się nie powiedzie. Jeśli właśnie przetestowałeś serwer i utworzyłeś i zamieściłeś obiekt, przejdź do https://dashboard.heroku.com/apps//resources , kliknij „MongoLab” obok jego ikony, a następnie na następnej stronie kliknij „Usuń wszystkie kolekcje”
  2. Przejdź do https://dashboard.parse.com/apps//settings/general gdzie to nazwa Twojej analizy aplikacja
  3. Przewiń stronę w dół i kliknij „Przenieś”
  4. W trybie modalnym, w szarym obszarze (który nie wygląda zbytnio jak dane wejściowe...) wprowadź MONGOLAB_URI o czym wspominaliśmy wcześniej
  5. Kliknij „Rozpocznij migrację”

  1. Po zakończeniu migracji kliknij „Zakończ”, a następnie w wyskakującym okienku kliknij „Ok”, gdy migracja się zakończy, wszystkie Twoje dane znajdą się w nowej bazie danych MongoDB.

  1. Na razie Twój pulpit nawigacyjny Parse będzie nadal pokazywał Twoje dane, które znajdują się teraz w nowej bazie danych. Aby wszystko przetestować, wróć do testowego jsFiddle, którego używaliśmy wcześniej i uruchom go ponownie. Teraz przejdź do pulpitu nawigacyjnego Parse i powinieneś zobaczyć nowo dodaną klasę i wiersz. Uwaga że kiedy korzystałem z nowego pulpitu nawigacyjnego Parse, mogłem zobaczyć liczbę wierszy, ale obszar wierszy był pusty. Wróciłem do starego pulpitu nawigacyjnego Parse i widziałem wszystko w porządku.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jaka jest maksymalna liczba parametrów przekazywana do zapytania $in w MongoDB?

  2. mongo:zwrot nie jest równy count()

  3. Jak analizować użycie dysku przez kontener Docker

  4. Jak formatować liczby za pomocą przecinków w SQL?

  5. Przegląd MongoDB i równoważenia obciążenia