Samohostování serveru Parse na Heroku
Nastavení Heroku, MongoDB a Parse
- Navštivte https://signup.heroku.com/ a zaregistrujte si účet
- Ověřte svůj e-mail a přihlaste se do Heroku
- Přejděte na Nasazení analyzačního serveru do Heroku
- Klikněte na "Deploy to Heroku"
- Pojmenujte svůj analyzační server
- Prozatím přeskočte APP_ID a MASTER_KEY aplikace, nastavíme je v pozdějším kroku.
- Klikněte na „Nasadit zdarma“
- Pokud se zobrazí níže uvedené pole, zadejte údaje o své kreditní kartě a ověřte svůj účet. Nebojte se, pokud později svůj účet neupgradujete, nebudou vám účtovány žádné poplatky . Toto je prostě bezpečnostní opatření, které Heroku zavedl, aby zabránil zneužití.
- Heroku vytvoří vaši aplikaci. Na pozadí vám také vytvoří .git repo a naklonuje obsah oficiálního git repo příkladu parse-server, vytvoří databázi MongoDB a nakonfiguruje vaši aplikaci Heroku tak, aby používala tuto DB.
- Po vytvoření aplikace budete přesměrováni na její ovládací panel Heroku nebo se tam můžete dostat tak, že se přihlásíte, kliknete na „Osobní aplikace“ a poté kliknete na název vašeho analyzovacího serveru.
- Na hlavním panelu aplikace klikněte na „Nastavení“ a poté na „Odhalit konfigurační proměnné“
- Vyplňte APP_ID a MASTER_KEY vaší aplikace. Pokud nyní máte aplikaci na Parse.com, můžete použít stejné klíče, jaké používá. Můžete se podívat na
https://www.parse.com/apps/<APP_NAME>/edit#keys
kde<APP_NAME>
je název vaší aplikace. Pokud vytváříte novou aplikaci, můžete zde vygenerovat náhodné klíče. Můžete přidat nové klíče pro všechny sdk, které plánujete používat, já přidávám jeden pro javascriptový sdk zde.
- Poznamenejte si hodnotu MONGOLAB_URI, budete ji potřebovat později, pokud budete chtít migrovat svá stávající data Parse do nové databáze
- Posuňte se dolů a poznamenejte si adresu URL Git a doménu Heroku pro vaši aplikaci, budete je potřebovat později
-
Nainstalujte Heroku Toolbelt, což je nástroj rozhraní příkazového řádku pro správu aplikací Heroku.
-
Otevřete výzvu terminálu a zadejte
$ heroku login
, zadejte svůj e-mail a heslo Heroku -
Zadejte
$ heroku git:clone -a <MY_APP_NAME>
(kde<MY_APP_NAME>
je název vaší aplikace heroku), chcete-li vytvořit místní kopii vašeho úložiště kódu serveru, můžete také použít adresu git url, kterou jsme viděli dříve. Když klonujete repozitář, uvidíte zprávu "varování:Zdá se, že jste naklonovali prázdné úložiště.". Složka aplikace bude vytvořena, ale bude obsahovat pouze standardní soubory git a žádný parse server. Chcete-li to opravit. Přejděte na oficiální git repo pro analýzu-server-example, stáhněte si soubor zip repo. Rozbalte složku, přetáhněte všechny soubory a složky ze složky parse-server-example-master do složky aplikace. -
Zpět do terminálu zadejte
$ cd <MY_APP_NAME>
přesunout do repozitáře
Povolte CORS (abyste mohli používat API z jiných domén)
- Na svém pevném disku vyhledejte a otevřete místní kopii úložiště, které jsme právě vytvořili
- Ve složce otevřete soubor
package.json
a přidejte"cors": "*"
dodependencies
takto:
.
"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
}
POZNÁMKA
Ujistěte se, že jste ze svého skutečného kódu odstranili výše uvedené komentáře, protože to nebude platný JSON
- Otevřete
index.js
a proveďte tyto změny:
.
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
});
- Vraťte se do okna terminálu, ujistěte se, že jste stále ve složce repozitáře, které jsme naklonovali, a zadejte níže, aby byly změny přeneseny do Heroku:
.
$ git add .
$ git commit -am "make it better"
$ git push heroku master
Otestujte svůj nový parse server
- Přejděte na tuto stránku jsFiddle
- Změňte
<MY_APP_ID>
,<MY_JS_KEY>
,<MY_HEROKU_APP_NAME>
v houslích vyberte příslušné hodnoty pro vaši aplikaci a poté klikněte na „Spustit“
.
Parse.initialize('<MY_APP_ID>', '<MY_JS_KEY>');
Parse.serverURL = 'https://<MY_HEROKU_APP_NAME>.herokuapp.com/Parse'
- Mělo by se zobrazit níže uvedené upozornění, které vás informuje, že váš nový server Parse funguje správně
POZNÁMKA:
Pokud používáte nástroj jsfiddle s více instancemi serveru pro analýzu, může se zobrazit chyba „neplatný token relace“. Pokud k tomu dojde, otevřete konzoli pro vývojáře a smažte všechny klíče „analyzovat“ z místního úložiště, poté by to mělo fungovat:
Migrujte svá stávající data z Parse
Před migrací produkční aplikace byste to měli udělat alespoň jednou s testovací aplikací. Také se zdá, že starší files
z vaší staré aplikace se ještě nemusí přenést, viz tento problém GitHub
- Než provedeme migraci , pokud váš nový MongoDB obsahuje data, migrace se nezdaří. Pokud jste server právě otestovali a vytvořili a objekt, přejděte na
https://dashboard.heroku.com/apps/<MY_HEROKU_APP_NAME>/resources
, klikněte na „MongoLab“ vedle ikony a poté na další stránce klikněte na „Smazat všechny sbírky“ - Přejděte na
https://dashboard.parse.com/apps/<APP_NAME>/settings/general
kde<APP_NAME>
je název vaší analýzy aplikace - Posuňte se na stránce dolů a klikněte na "Migrovat"
- V modálním provedení do šedé oblasti (která nevypadá moc jako vstup...) zadejte
MONGOLAB_URI
které jsme zaznamenali dříve - Klikněte na „Zahájit migraci“
- Po dokončení migrace klikněte na „Dokončit“ a poté ve vyskakovacím okně klikněte na „OK“, až bude migrace dokončena, všechna vaše data budou ve vaší nové databázi MongoDB.
- Zatím bude váš panel Parse nadále zobrazovat vaše data, která jsou nyní uložena v nové databázi. Chcete-li vše otestovat, vraťte se k testovacímu jsFiddle, který jsme použili dříve, a spusťte jej znovu. Nyní přejděte na řídicí panel Parse a měli byste vidět nově přidanou třídu a řádek. Poznámka že když jsem použil nový řídicí panel Parse, viděl jsem počet řádků, ale oblast řádků byla prázdná. Vrátil jsem se ke starému panelu Parse a viděl jsem vše v pořádku.