sql >> Databáze >  >> NoSQL >> MongoDB

Jak mohu hostovat svůj vlastní Parse Server na Heroku pomocí MongoDB?

Samohostování serveru Parse na Heroku

Nastavení Heroku, MongoDB a Parse

  1. Navštivte https://signup.heroku.com/ a zaregistrujte si účet
  2. Ověřte svůj e-mail a přihlaste se do Heroku
  3. Přejděte na Nasazení analyzačního serveru do Heroku
  4. Klikněte na "Deploy to Heroku"

  1. Pojmenujte svůj analyzační server
  2. Prozatím přeskočte APP_ID a MASTER_KEY aplikace, nastavíme je v pozdějším kroku.
  3. Klikněte na „Nasadit zdarma“

  1. 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í.

  1. 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.
  2. 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.
  3. Na hlavním panelu aplikace klikněte na „Nastavení“ a poté na „Odhalit konfigurační proměnné“

  1. 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.

  1. 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
  2. Posuňte se dolů a poznamenejte si adresu URL Git a doménu Heroku pro vaši aplikaci, budete je potřebovat později

  1. Nainstalujte Heroku Toolbelt, což je nástroj rozhraní příkazového řádku pro správu aplikací Heroku.

  2. Otevřete výzvu terminálu a zadejte $ heroku login , zadejte svůj e-mail a heslo Heroku

  3. 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.

  4. 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)

  1. Na svém pevném disku vyhledejte a otevřete místní kopii úložiště, které jsme právě vytvořili
  2. Ve složce otevřete soubor package.json a přidejte "cors": "*" do dependencies 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

  1. 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
});
  1. 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

  1. Přejděte na tuto stránku jsFiddle
  2. 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'
  1. 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

  1. 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“
  2. Přejděte na https://dashboard.parse.com/apps/<APP_NAME>/settings/general kde <APP_NAME> je název vaší analýzy aplikace
  3. Posuňte se na stránce dolů a klikněte na "Migrovat"
  4. V modálním provedení do šedé oblasti (která nevypadá moc jako vstup...) zadejte MONGOLAB_URI které jsme zaznamenali dříve
  5. Klikněte na „Zahájit migraci“

  1. 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.

  1. 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.



  1. Obrovské zpoždění při použití Celer + Redis

  2. Jaký je čistý způsob, jak zastavit mongoda v systému Mac OS X?

  3. Jak efektivně vložit miliardu dat do Redis?

  4. Jak používat příkaz HSCAN v Redis?