Inštalácia požadovaných balíkov
Prvým krokom k nasadeniu vašej aplikácie GraphQL je príprava servera inštaláciou požadovaných balíkov. Prihláste sa na server pomocou SSH.
[chránené e-mailom]: ~ $ ssh ubuntu @ IPAdress -i KeyPair.pemPOZNÁMKA: Skontrolujte, či je skupina zabezpečenia inštancie nakonfigurovaná tak, aby umožňovala pripojenie z portu 22, a súbor súkromného kľúča má povolenie 400.
Aktualizujte úložiská Ubuntu.
[chránené e-mailom]: ~ $ sudo apt-get update -yTeraz nainštalujte uzol.js a npm na vašom serveri ubuntu.
[chránené e-mailom]: ~ $ sudo apt-get install nodejs -y[chránené e-mailom]: ~ $ sudo apt-get install npm -y
Inštaláciu overte kontrolou verzie uzla.js a npm.
[chránené e-mailom]: ~ $ node -v[chránené e-mailom]: ~ $ npm -v
Presuňte aplikáciu GraphQL na server EC2
Inštancia EC2 je pripravená na nasadenie aplikácií graphQL v uzle.js. Teraz presunieme náš kód do inštancie EC2. Dva bežné spôsoby kopírovania kódu na server sú uvedené nižšie a budú tu popísané.
- Skopírujte kód pomocou príkazu scp
- Klonujte kód aplikácie z Github, Gitlab alebo Bitbucket
Skopírujte aplikáciu pomocou príkazu scp
Ak chcete skopírovať svoju aplikáciu na server EC2 pomocou príkazu scp, najskôr zo svojej aplikácie graphQL odstráňte adresár 'node_modules'. Tento adresár obsahuje všetky balíky npm potrebné na spustenie aplikácie. Tieto balíčky nainštalujeme neskôr pred spustením aplikácie graphQL. Teraz komprimujte adresár projektu do súboru zip. Po vytvorení zip súboru presunieme zip súbor projektu na server. Linux a Windows majú rôzne metódy na vytvorenie súboru ZIP.
Windows
V systéme Windows kliknite pravým tlačidlom myši na koreňový adresár aplikácie a vyberte možnosť „poslať do“. Otvorí sa podmenu. Kliknutím na „komprimovaný (komprimovaný) priečinok“ vytvoríte súbor zip aplikácie graphQL.
Linux alebo Mac
V systéme Linux alebo Mac OS použijeme príkaz „zip“ na vytvorenie súboru zip projektu.
[chránené e-mailom]: ~ $ zip -r graphQL.zip graphQLVyššie uvedený príkaz vygeneruje graphQL.zip súbor adresára graphQL.
Nahrajte aplikáciu na server
Teraz máme súbor zip našej aplikácie a pomocou príkazu scp môžeme súbor zip nahrať na server.
[chránené e-mailom]: ~ $ scp -i KeyPair.pem graphQL.zip ubuntu @ IPAddress: ~ /Vyššie uvedený príkaz presunie súbor zip projektu do domovského adresára vzdialeného servera cez ssh pripojenie. Teraz na vzdialenom serveri rozbaľte súbor zip projektu.
[chránené e-mailom]: ~ $ rozbaľte graphQL.PSČKlonujte aplikáciu z Github, Bitbucket alebo Gitlab
Druhá metóda na kopírovanie kódu aplikácie na server používa git. Nainštalujte git z príkazového riadku na serveri EC2.
[chránené e-mailom]: ~ $ sudo apt install gitSkontrolujte verziu git a overte inštaláciu.
[chránené e-mailom]: ~ $ git --version
Ak neposkytuje verziu git, potom git nie je nainštalovaný. Teraz klonujte aplikáciu z github, gitlab alebo bitbucket. Tu naklonujeme kód aplikácie z githubu.
[chránené e-mailom]: ~ $ git clone ttps: // github.com / contentful / the-example-app.nodejsSpustenie aplikácie GraphQL
Teraz máme našu aplikáciu graphQL na vzdialenom serveri. Prejdite do koreňového adresára aplikácie graphQL a nainštalujte požadované balíčky npm na spustenie aplikácie graphQL.
[chránené e-mailom]: ~ $ cd graphQL[chránené e-mailom]: ~ $ sudo npm inštalácia
Tento príkaz vykoná analýzu balíka.súbor JSON v projekte a nainštalujte všetky požadované balíčky NPM. Po nainštalovaní požadovaných balíkov teraz spustíme aplikáciu graphQL.
[chránené e-mailom]: ~ $ aplikácia uzla.jsSpustená aplikácia ako démon
Keď spustíme aplikáciu štandardnou metódou, ako je popísané vyššie, spustí sa v popredí a aplikácia sa zastaví, keď zatvoríte okno terminálu. Aplikáciu môžeme spustiť ako proces na pozadí tak, že k príkazu pripojíme znak ampersand (&).
[chránené e-mailom]: ~ $ aplikácia uzla.js &Problém s touto metódou spočíva v tom, že keď upravíme náš kód aplikácie, použité zmeny sa automaticky neodrazia. Na uplatnenie zmien budeme musieť aplikáciu reštartovať zakaždým, keď upravíme kód. Na spustenie aplikácie na pozadí a na automatické uplatnenie zmien použijeme balíček npm s názvom pm2. Nainštalujte pm2 na server.
[chránené e-mailom]: ~ $ sudo npm install -g pm2Spustite aplikáciu graphQL pomocou pm2.
[chránené e-mailom]: ~ $ pm2 spustenie aplikácie.js - názov „graphQL“ - hodinkyPríznak „-name“ pomenuje proces na pozadí a pomocou názvu môžeme aplikáciu spustiť a zastaviť. Príznak „-hodinky“ bude pokračovať v kontrole kódu aplikácie, aby sa zmeny mohli okamžite použiť. Viac informácií o pm2 sa dozviete na nasledujúcom odkaze
https: // pm2.keymetrics.io /
Dopytovanie GraphQL API z prehliadača
Môžeme nakonfigurovať našu aplikáciu graphQL tak, aby robila dotazy graphQL z prehliadača ručne. Za týmto účelom musíme vytvoriť samostatný koncový bod HTTP, na ktorý namontujeme server GraphQL API. A tento koncový bod HTTP sa použije na manuálne dotazy. Nasleduje kód na vytvorenie koncového bodu servera graphQL api.
const express = require ('express');const graphqlHTTP = require ('express-graphql');
const buildSchema = require ('graphql');
const graphQLSchema = buildSchema ('
zadajte dopyt
správa: Reťazec
'
);
const func =
správa: () =>
návrat 'používate server graphql api';
;
const server = express ();
server.použitie ('/ graphql', graphqlHTTP (
schéma: graphQLSchema,
rootValue: func,
graphiql: pravda
));
server.počúvať (3000);
Teraz, po spustení servera, môžeme získať prístup k serveru graphQL api na nasledujúcej trase.
http: // localhost: 3000 / graphql
Dopytovanie GraphQL API pomocou CLI
V predchádzajúcej časti sme robili dotazy graphQL z prehliadača pomocou graphiql. Teraz budeme robiť dotazy graphQL pomocou rozhrania príkazového riadku v ubuntu. Z príkazového riadku použijeme na vytvorenie požiadavky HTTP POST modul curl.
[chránené e-mailom]: ~ $ curl -X POST -H "Content-Type: application / json" -d '"query": "message"' http: // localhost: 3000 / graphql
Programové dotazy na API GraphQL
Na programové vytváranie grafQL dotazov použijeme v uzle modul „načítanie uzlov“.js. Otvorený uzol.js v termináli.
[chránené e-mailom]: ~ $ uzolTeraz urobte požiadavku HTTP POST na server pomocou modulu 'node-fetch'.
GraphQL je efektívny dotazovací jazyk a môže znížiť čas odozvy pri zadaní dotazu do databázy. Štandardné volania api na načítanie údajov z databázy zahŕňajú do odpovede veľa nepoužiteľných údajov, a preto sa zvyšuje čas odozvy, čo znižuje účinnosť. Dotaz na databázu pomocou GraphQL vráti iba užitočné údaje, a tým zníži čas odozvy. V tomto článku sme nasadili našu aplikáciu graphQL na inštanciu EC2.