Nepieciešamo pakotņu instalēšana
Pirmais grafQL lietojumprogrammas izvietošanas solis ir servera sagatavošana, instalējot nepieciešamās pakotnes. Piesakieties serverī, izmantojot SSH.
[aizsargāts pa e-pastu]: ~ $ ssh ubuntu @ IPAdress -i KeyPair.pemPIEZĪME: Pārliecinieties, vai instances drošības grupa ir konfigurēta tā, lai atļautu savienojumu no 22. porta, un privātās atslēgas failam ir 400 atļauju.
Atjauniniet Ubuntu krātuves.
[e-pasts aizsargāts]: ~ $ sudo apt-get update -yTagad instalējiet mezglu.js un npm jūsu ubuntu serverī.
[aizsargāts ar e-pastu]: ~ $ sudo apt-get install nodejs -y[aizsargāts pa e-pastu]: ~ $ sudo apt-get install npm -y
Pārbaudiet instalāciju, pārbaudot mezgla versiju.js un npm.
[e-pasts aizsargāts]: ~ $ mezgls -v[e-pasts aizsargāts]: ~ $ npm -v
Pārvietojiet GraphQL lietojumprogrammu uz EC2 serveri
EC2 instance ir gatava izvietot graphQL lietojumprogrammas mezglā.js. Tagad mēs pārvietosim savu kodu uz EC2 instanci. Tālāk ir uzskaitīti divi kopīgi koda kopēšanas servera veidi, un tie tiks apspriesti šeit.
- Kopējiet kodu, izmantojot komandu scp
- Klonējiet lietojumprogrammas kodu no Github, Gitlab vai Bitbucket
Kopējiet lietojumprogrammu, izmantojot komandu scp
Lai nokopētu lietojumprogrammu EC2 serverī, izmantojot komandu scp, vispirms no sava grafQL lietojumprogrammas noņemiet direktoriju 'node_modules'. Šajā direktorijā ir visas npm paketes, kas nepieciešamas lietojumprogrammas darbināšanai. Šīs paketes mēs instalēsim vēlāk, pirms palaidīsim grafQL lietojumprogrammu. Tagad saspiediet projekta direktoriju zip failā. Pēc zip faila izveidošanas mēs pārvietosim projekta zip failu uz serveri. Linux un Windows ir dažādas metodes, lai izveidotu zip failu.
Windows
Windows ar peles labo pogu noklikšķiniet uz lietojumprogrammas saknes direktorija un dodieties uz opciju Sūtīt uz. Tas atvērs apakšizvēlni. Noklikšķiniet uz mapes Saspiesta (saspiesta), lai izveidotu ZIPQL failu lietojumprogrammā graphQL.
Linux vai Mac
Operētājsistēmā Linux vai Mac OS mēs izmantosim komandu zip, lai izveidotu projekta zip failu.
[aizsargāts ar e-pastu]: ~ $ zip -r graphQL.zip graphQLIepriekš minētā komanda ģenerēs graphQL.graphQL direktorija zip fails.
Augšupielādējiet lietojumprogrammu serverī
Tagad mums ir mūsu lietojumprogrammas zip fails, un mēs varam augšupielādēt zip failu serverī, izmantojot komandu scp.
[aizsargāts ar e-pastu]: ~ $ scp -i KeyPair.pem graphQL.zip ubuntu @ IP adrese: ~ /Iepriekš minētā komanda pārvietos projekta zip failu uz attālā servera mājas direktoriju, izmantojot ssh savienojumu. Tagad attālajā serverī izpakojiet projekta zip failu.
[aizsargāts ar e-pastu]: ~ $ atvienojiet graphQL.zipKlona lietošana no Github, Bitbucket vai Gitlab
Otra metode lietojumprogrammas koda kopēšanai serverī ir git izmantošana. Instalējiet git no komandrindas EC2 serverī.
[aizsargāts ar e-pastu]: ~ $ sudo apt install gitPārbaudiet git versiju, lai pārbaudītu instalēšanu.
[aizsargāts ar e-pastu]: ~ $ git --versija
Ja tas nedod git versiju, tad git nav instalēts. Tagad klonējiet lietojumprogrammu no github, gitlab vai bitbucket. Šeit mēs klonēsim lietojumprogrammas kodu no github.
[e-pasts aizsargāts]: ~ $ git clone ttps: // github.com / contentful / the-example-app.nodejsStartējot GraphQL lietojumprogrammu
Tagad mums ir mūsu graphQL lietojumprogramma attālajā serverī. Dodieties uz graphQL lietojumprogrammas saknes direktoriju un instalējiet nepieciešamos npm pakotnes, lai palaistu graphQL lietojumprogrammu.
[aizsargāts ar e-pastu]: ~ $ cd graphQL[aizsargāts ar e-pastu]: ~ $ sudo npm install
Šī komanda analizēs paketi.json failu projektā un instalējiet visas nepieciešamās npm paketes. Pēc nepieciešamo pakotņu instalēšanas tagad sāksim grafQL lietojumprogrammu.
[aizsargāts ar e-pastu]: ~ $ mezgla lietotne.jsProgramma darbojas kā Daemon
Kad mēs palaižam lietojumprogrammu, izmantojot iepriekš aprakstīto standarta metodi, tā darbojas priekšplānā, un programma tiek apturēta, aizverot termināla logu. Mēs varam palaist lietojumprogrammu kā fona procesu, komandai pievienojot zīmi (&).
[aizsargāts ar e-pastu]: ~ $ mezgla lietotne.js &Šīs metodes problēma ir tāda, ka, pārveidojot lietojumprogrammas kodu, lietotās izmaiņas netiks automātiski atspoguļotas. Mums būs jārestartē lietojumprogramma katru reizi, kad mēs modificējam kodu, lai piemērotu izmaiņas. Lai lietojumprogrammu palaistu fonā un izmaiņas tiktu piemērotas automātiski, mēs izmantosim paketi npm ar nosaukumu pm2. Instalējiet pm2 serverī.
[aizsargāts pa e-pastu]: ~ $ sudo npm install -g pm2Sāciet graphQL lietojumprogrammu, izmantojot pm2.
[e-pasts aizsargāts]: ~ $ pm2 sākuma lietotne.js - nosaukums “graphQL” - pulkstenisKarogs '-name' nosauks fona procesu, un mēs varam sākt un apturēt lietojumprogrammu, izmantojot nosaukumu. Karogs '-watch' turpinās pārbaudīt lietojumprogrammas kodu, lai nekavējoties piemērotu izmaiņas. Jūs varat uzzināt vairāk par pm2, apmeklējot šo saiti
https: // pm2.keimetrija.io /
Pieprasot GraphQL API no pārlūkprogrammas
Mēs varam konfigurēt mūsu graphQL lietojumprogrammu, lai manuāli veiktu graphQL vaicājumus no pārlūka. Lai to izdarītu, mums ir jāizveido atsevišķs HTTP galapunkts, uz kura mēs uzstādīsim graphQL API serveri. Šis HTTP galapunkts tiks izmantots manuālu vaicājumu veikšanai. Tālāk ir kods, lai izveidotu graphQL api servera galapunktu.
const express = pieprasīt ('express');const graphqlHTTP = pieprasīt ('express-graphql');
const buildSchema = pieprasīt ('graphql');
const graphQLSchema = buildSchema ('
ievadiet vaicājumu
ziņojums: Stīga
);
const func =
ziņojums: () =>
atgriezt 'jūs izmantojat graphql api serveri';
;
const serveris = express ();
serveris.use ('/ graphql', graphqlHTTP (
shēma: graphQLSchema,
rootValue: func,
graphiql: taisnība
));
serveris.klausīties (3000);
Pēc servera palaišanas mēs varam piekļūt graphQL api serverim šajā maršrutā.
http: // localhost: 3000 / graphql
Pieprasot GraphQL API, izmantojot CLI
Iepriekšējā sadaļā mēs izveidojām graphQL vaicājumus no pārlūkprogrammas, izmantojot graphiql. Tagad mēs veiksim graphQL vaicājumus, izmantojot komandrindas saskarni Ubuntu. No komandrindas, lai izveidotu HTTP POST pieprasījumu, mēs izmantosim čokurošanās moduli.
[aizsargāts ar e-pastu]: ~ $ curl -X POST -H "Content-Type: application / json" -d '"query": "message"' http: // localhost: 3000 / graphql
Vaicājot GraphQL API programmiski
Lai programmiski izveidotu graphQL vaicājumu, mezglā izmantosim moduli 'node-fetch'.js. Atveriet mezglu.js terminālā.
[e-pasts aizsargāts]: ~ $ mezglsTagad veiciet HTTP POST pieprasījumu serverim, izmantojot moduli 'node-fetch'.
GraphQL ir efektīva vaicājuma valoda, un tā var samazināt uz datu bāzi izveidota vaicājuma reakcijas laiku. Standarta api izsaukumi, lai ielādētu datus no datu bāzes, atbildē ietver daudzus nelietderīgus datus, un līdz ar to palielinās reakcijas laiks, kas samazina efektivitāti. Vaicājums, kas datubāzēm veikts, izmantojot GraphQL, atgriež tikai noderīgos datus un tādējādi samazina atbildes laiku. Šajā rakstā mēs esam izvietojuši mūsu graphQL lietojumprogrammu EC2 instancē.