MezglsJS

Kā izvietot GraphQL lietojumprogrammu, izmantojot mezglu.js uz EC2 servera

Kā izvietot GraphQL lietojumprogrammu, izmantojot mezglu.js uz EC2 servera
GraphQL, kas pazīstama arī kā Graph Query Language, kuru izveidoja un uztur Facebook, ir vaicājumu valoda, ko izmanto API. Tas ir veidots, izmantojot JavaScript, Scala, Java un Ruby programmēšanas valodas. Tās galvenais mērķis ir pieprasīt datus no servera uz klientu.GraphQL apkopo datus no dažādiem avotiem. Apkopošana ir datu filtrēšanas process servera pusē un filtrēto datu nosūtīšana klientam. Bez apkopošanas mēs visus datus nosūtām klientam, un pēc tam dati tiek filtrēti klienta pusē. Tas padara sistēmu lēnu, un mēs varam uzlabot API efektivitāti, izmantojot GraphQL. Šeit mēs iemācīsimies izvietot vienkāršu GraphQL lietojumprogrammu, izmantojot mezglu.js uz EC2 servera.

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

PIEZĪ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 -y

Tagad 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 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 graphQL

Iepriekš 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.zip

Klona 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 git

Pā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.nodejs

Startē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.js

Programma 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 pm2

Sāciet graphQL lietojumprogrammu, izmantojot pm2.

[e-pasts aizsargāts]: ~ $ pm2 sākuma lietotne.js - nosaukums “graphQL” - pulkstenis

Karogs '-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]: ~ $ mezgls

Tagad 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ē.

Kā instalēt un spēlēt Doom uz Linux
Ievads liktenī Doom sērija radās 90. gados pēc sākotnējā Doom izlaišanas. Tas bija tūlītējs hīts, un kopš tā laika spēļu sērija ir saņēmusi daudzas ba...
Vulkan Linux lietotājiem
Ar katru jauno grafisko karšu paaudzi mēs redzam, kā spēļu izstrādātāji pārspēj grafiskās uzticamības robežas un tuvojas fotoreālismam. Neskatoties uz...
OpenTTD vs Simutrans
Transporta simulācijas izveide var būt jautra, relaksējoša un ārkārtīgi vilinoša. Tāpēc jums jāpārliecinās, ka izmēģināt pēc iespējas vairāk spēļu, la...