NodeJS

Kako razmestiti aplikacijo GraphQL z uporabo vozlišča.js na strežniku EC2

Kako razmestiti aplikacijo GraphQL z uporabo vozlišča.js na strežniku EC2
GraphQL, znan tudi kot Graph Query Language, ki ga je vzpostavil in vzdržuje Facebook, je poizvedbeni jezik, ki se uporablja za API-je. Izdelan je z uporabo programskih jezikov JavaScript, Scala, Java in Ruby. Njegov osnovni namen je povpraševanje po podatkih od strežnika do odjemalca.GraphQL zbira podatke iz različnih virov. Združevanje je postopek filtriranja podatkov na strani strežnika in nato filtriranje podatkov pošlje odjemalcu. Brez združevanja pošljemo vse podatke odjemalcu, nato pa podatke na strani odjemalca filtriramo. Zaradi tega je sistem počasen in z API-jem GraphQL lahko izboljšamo učinkovitost API-ja. Tu se bomo naučili uvesti preprosto aplikacijo GraphQL z uporabo vozlišča.js na strežniku EC2.

Namestitev potrebnih paketov

Prvi korak za razmestitev aplikacije graphQL je priprava strežnika z namestitvijo zahtevanih paketov. Prijavite se v strežnik s pomočjo SSH.

[zaščiteno po e-pošti]: ~ $ ssh ubuntu @ IPAdress -i KeyPair.pem

OPOMBA: Prepričajte se, da je varnostna skupina primerka konfigurirana tako, da omogoča povezavo iz vrat 22, in da ima datoteka z zasebnim ključem 400 dovoljenj.

Posodobite repozitorije Ubuntu.

[e-pošta zaščitena]: ~ $ sudo apt-get update -y

Zdaj namestite vozlišče.js in npm na vašem strežniku ubuntu.

[zaščiteno po e-pošti]: ~ $ sudo apt-get install nodejs -y
[zaščiteno po e-pošti]: ~ $ sudo apt-get install npm -y

Namestitev preverite s preverjanjem različice vozlišča.js in npm.

[zaščiteno po e-pošti]: ~ $ vozlišče -v
[e-pošta zaščitena]: ~ $ npm -v

Premakni aplikacijo GraphQL na strežnik EC2

Primerek EC2 je pripravljen za namestitev programov graphQL v vozlišče.js. Zdaj bomo svojo kodo premaknili na primerek EC2. Spodaj sta navedena dva pogosta načina kopiranja kode na strežnik, o katerih bomo govorili tukaj.

Kopirajte aplikacijo z ukazom scp

Če želite s pomočjo ukaza scp kopirati svojo aplikacijo na strežnik EC2, najprej iz aplikacije graphQL odstranite imenik 'node_modules'. Ta imenik vsebuje vse pakete npm, potrebne za zagon aplikacije. Te pakete bomo namestili kasneje, preden zaženemo aplikacijo graphQL. Zdaj imenik projekta stisnite v zip datoteko. Po izdelavi zip datoteke bomo datoteko zip projekta premaknili na strežnik. Linux in Windows imata različne metode za ustvarjanje zip datoteke.

Windows

V oknih z desno miškino tipko kliknite korenski imenik aplikacije in pojdite na možnost »pošlji«. Odprl se bo podmeni. Kliknite »Stisnjena (stisnjena) mapa«, da ustvarite datoteko zip aplikacije graphQL.

Linux ali Mac

V Linuxu ali Mac OS bomo z ukazom zip ustvarili datoteko zip projekta.

[e-pošta zaščitena]: ~ $ zip -r graphQL.zip graphQL

Zgornji ukaz bo ustvaril graphQL.zip datoteka imenika graphQL.

Naložite aplikacijo na strežnik

Zdaj imamo zip datoteko naše aplikacije in zip datoteko lahko naložimo na strežnik z ukazom scp.

[zaščiteno po e-pošti]: ~ $ scp -i KeyPair.pem graphQL.zip ubuntu @ IPAddress: ~ /

Zgornji ukaz bo datoteko zip projekta premaknil v domači imenik oddaljenega strežnika prek povezave ssh. Zdaj na oddaljenem strežniku razpakirajte datoteko zip projekta.

[zaščiteno po e-pošti]: ~ $ unzip graphQL.zadrgo

Klonirajte aplikacijo iz Github, Bitbucket ali Gitlab

Drugi način kopiranja kode aplikacije na strežnik je uporaba git. Namestite git iz ukazne vrstice na strežniku EC2.

[e-pošta zaščitena]: ~ $ sudo apt install git

Preverite različico git, da preverite namestitev.

[zaščiteno po e-pošti]: ~ $ git --version

Če ne vsebuje različice git, potem git ni nameščen. Zdaj klonirajte aplikacijo iz github, gitlab ali bitbucket. Tukaj bomo klonirali kodo aplikacije iz githuba.

[e-pošta zaščitena]: ~ $ git clone ttps: // github.com / contentful / the-example-app.nodejs

Zagon aplikacije GraphQL

Zdaj imamo aplikacijo graphQL na oddaljenem strežniku. Pojdite v korenski imenik aplikacije graphQL in namestite potrebne pakete npm za zagon aplikacije graphQL.

[zaščiteno po e-pošti]: ~ $ cd graphQL
[zaščiteno po e-pošti]: ~ $ sudo npm install

Ta ukaz bo analiziral paket.json v projektu in namestite vse zahtevane pakete npm. Po namestitvi zahtevanih paketov bomo zdaj zagnali aplikacijo graphQL.

[e-pošta zaščitena]: ~ $ node app.js

Zagon aplikacije kot Daemon

Ko zaženemo aplikacijo po standardni metodi, kot je opisano zgoraj, deluje v ospredju in se aplikacija ustavi, ko zaprete okno terminala. Aplikacijo lahko zaženemo kot postopek v ozadju, tako da ukazu dodamo znak & (&).

[e-pošta zaščitena]: ~ $ node app.js &

Težava te metode je, da se, ko spremenimo kodo aplikacije, uporabljene spremembe ne bodo odražale samodejno. Aplikacijo bomo morali znova zagnati vsakič, ko spremenimo kodo, da bomo uveljavili spremembe. Za zagon aplikacije v ozadju in za samodejno uveljavitev sprememb bomo uporabili paket npm z imenom pm2. Namestite pm2 na strežnik.

[zaščiteno po e-pošti]: ~ $ sudo npm install -g pm2

Zaženite aplikacijo graphQL s pomočjo pm2.

[zaščiteno po e-pošti]: ~ $ pm2 start app.js --ime “graphQL” --watch

Oznaka '-name' bo poimenovala postopek v ozadju in z imenom lahko zaženemo in ustavimo aplikacijo. Oznaka '-watch' bo še naprej preverjala kodo aplikacije, da bo spremembe uveljavila takoj. Več o pm2 lahko izveste na naslednji povezavi

https: // pm2.keymetrics.io /

Poizvedovanje po API-ju GraphQL iz brskalnika

Našo aplikacijo graphQL lahko nastavimo tako, da ročno poizveduje iz brskalnika. Za to moramo ustvariti ločeno končno točko HTTP, na katero bomo namestili strežnik API GraphQL. Ta končna točka HTTP bo uporabljena za ročne poizvedbe. Sledi koda za ustvarjanje končne točke strežnika APIQL graphQL.

const express = require ('express');
const graphqlHTTP = require ('express-graphql');
const buildSchema = require ('graphql');
const graphQLSchema = buildSchema ('
vnesite poizvedbo
sporočilo: niz
'
);
const func =
sporočilo: () =>

vrni 'uporabljate strežnik apq graphql';

;
const strežnik = express ();
strežnik.use ('/ graphql', graphqlHTTP (
shema: graphQLSchema,
rootValue: func,
graphiql: res
));
strežnik.poslušaj (3000);

Zdaj, po zagonu strežnika, lahko dostopamo do APIQL strežnika graphQL na naslednji poti.

http: // localhost: 3000 / graphql

Poizvedovanje po API-ju GraphQL z uporabo CLI

V prejšnjem razdelku smo iz brskalnika s pomočjo graphiql naredili poizvedbe graphQL. Zdaj bomo naredili poizvedbe graphQL z uporabo vmesnika ukazne vrstice v ubuntuju. V ukazni vrstici bomo za zahtevo HTTP POST uporabili modul curl.

[zaščiteno po e-pošti]: ~ $ curl -X POST -H "Content-Type: application / json" -d '"query": "message"' http: // localhost: 3000 / graphql

Programsko poizvedovanje po API-ju GraphQL

Za programsko poizvedbo graphQL bomo uporabili modul 'node-fetch' v vozlišču.js. Odprite vozlišče.js v terminalu.

[zaščiteno po e-pošti]: ~ $ vozlišče

Zdaj pošljite zahtevo HTTP POST strežniku z uporabo modula 'node-fetch'.

GraphQL je učinkovit jezik poizvedb in lahko skrajša odzivni čas poizvedbe v zbirko podatkov. Standardni klici api za pridobivanje podatkov iz baze podatkov vključujejo veliko neuporabnih podatkov v odziv, zato se odzivni čas poveča, kar zmanjša učinkovitost. Poizvedba v podatkovnih bazah z uporabo GraphQL vrne le uporabne podatke in s tem skrajša odzivni čas. V tem članku smo aplikacijo graphQL razporedili na primerku EC2.

Vadnica Shadow of the Tomb Raider za Linux
Shadow of the Tomb Raider je dvanajsti dodatek k seriji Tomb Raider - franšiza akcijsko-pustolovskih iger, ki jo je ustvaril Eidos Montreal. Kritiki i...
Kako povečati FPS v Linuxu?
FPS pomeni Število sličic na sekundo. Naloga FPS je merjenje hitrosti sličic pri predvajanju video posnetkov ali igranih predstavah. Z enostavnimi bes...
Najboljše laboratorijske igre Oculus App
Če ste lastnik slušalk Oculus, morate biti seznanjeni s stranskim nalaganjem. Sideloading je postopek namestitve vsebine, ki ni shranjena v slušalke. ...