SõlmJS

Kuidas juurutada GraphQL-i rakendust sõlme abil.js EC2 serveris

Kuidas juurutada GraphQL-i rakendust sõlme abil.js EC2 serveris
GraphQL, tuntud ka kui Graph Query Language, mille on loonud ja haldab Facebook, on API-de jaoks kasutatav päringukeel. Selle koostamisel kasutatakse JavaScripti, Scala, Java ja Ruby programmeerimiskeeli. Selle peamine eesmärk on küsida andmeid serverilt kliendile.GraphQL koondab andmeid erinevatest allikatest. Liitmine on serveripoolsete andmete filtreerimine ja seejärel filtreeritud andmete kliendile saatmine. Ilma agregeerimiseta saadame kõik andmed kliendile ja seejärel kliendipoolsed andmed filtreeritakse. See muudab süsteemi aeglaseks ja GraphQL-i abil saame parandada API efektiivsust. Siin õpime lihtsa GraphQL-i rakenduse juurutamist sõlme abil.js EC2 serveris.

Nõutavate pakettide installimine

Esimene samm oma grafQL-i rakenduse juurutamiseks on oma serveri ettevalmistamine vajalike pakettide installimisega. Logige SSH-ga serverisse sisse.

[meiliga kaitstud]: ~ $ ssh ubuntu @ IPAdress -i KeyPair.pem

MÄRGE: Veenduge, et eksemplari turbegrupp on konfigureeritud lubama ühendust porti 22 ja privaatvõtme failil on 400 luba.

Värskendage Ubuntu hoidlaid.

[meiliga kaitstud]: ~ $ sudo apt-get update -y

Nüüd installige sõlm.js ja npm teie ubuntu serveris.

[meiliga kaitstud]: ~ $ sudo apt-get install nodejs -y
[meiliga kaitstud]: ~ $ sudo apt-get install npm -y

Installimise kontrollimiseks kontrollige sõlme versiooni.js ja npm.

[meiliga kaitstud]: ~ $ sõlm -v
[meiliga kaitstud]: ~ $ npm -v

GraphQL-i rakenduse teisaldamine EC2-serverisse

EC2 eksemplar on valmis graphQL-i rakendusi sõlmes juurutama.js. Nüüd liigutame oma koodi EC2 eksemplari. Kaks levinud viisi koodi serverisse kopeerimiseks on loetletud allpool ja neid käsitletakse siin.

Rakenduse kopeerimine käsuga scp

Rakenduse kopeerimiseks EC2 serverisse käsuga scp eemaldage kõigepealt oma graafQLQL-i kaust 'node_modules'. Selles kataloogis on kõik rakenduse käitamiseks vajalikud paketid npm. Paigaldame need paketid hiljem enne graphQL-i rakenduse käivitamist. Nüüd tihendage projekti kataloog ZIP-failiks. Pärast zip-faili loomist teisaldame projekti zip-faili serverisse. Linuxil ja Windowsil on zip-faili loomiseks erinevad meetodid.

Windows

Paremklõpsake akendes rakenduse juurkataloogil ja minge valikule "Saada". See avab alammenüü. GraphQL-i rakenduse zip-faili loomiseks klõpsake 'tihendatud (zipitud) kaustal'.

Linux või Mac

Linuxis või Mac OS-is kasutame projekti zip-faili loomiseks käsku zip.

[meiliga kaitstud]: ~ $ zip -r graphQL.zip graphQL

Ülaltoodud käsk genereerib graphQL-i.graphQL-i kataloogi zip-fail.

Laadige rakendus serverisse üles

Nüüd on meil oma rakenduse zip-fail ja käsuga scp saab zip-faili serverisse laadida.

[meiliga kaitstud]: ~ $ scp -i KeyPair.pem graphQL.zip ubuntu @ IP-aadress: ~ /

Ülaltoodud käsk viib projekti ZIP-faili kaugserveri kodukataloogi ssh-ühenduse kaudu. Nüüd pakkige kaugserveris projekti zip-fail lahti.

[meiliga kaitstud]: ~ $ unzip graphQL.tõmblukk

Kloonirakendus Githubist, Bitbucketist või Gitlabist

Teine meetod rakenduskoodi serverisse kopeerimiseks on git. Installige git EC2 serveri käsurealt.

[meiliga kaitstud]: ~ $ sudo apt install git

Installimise kontrollimiseks kontrollige giti versiooni.

[meiliga kaitstud]: ~ $ git --versioon

Kui see ei anna versiooni git, siis git pole installitud. Kloonige rakendus nüüd githubist, gitlabist või bitbucketist. Kloonime siin rakenduse koodi githubist.

[meiliga kaitstud]: ~ $ git kloon ttps: // github.com / contentful / the-example-app.nodejs

Rakenduse GraphQL käivitamine

Nüüd on meil kaugserveris oma graphQL-i rakendus. Minge GraphQL-i rakenduse juurkataloogi ja installige GraphQL-i rakenduse käivitamiseks vajalikud npm-paketid.

[meiliga kaitstud]: ~ $ cd graphQL
[meiliga kaitstud]: ~ $ sudo npm install

See käsk analüüsib paketti.jsoni fail projektis ja installige kõik vajalikud npm paketid. Pärast vajalike pakettide installimist käivitame nüüd graphQL-i rakenduse.

[meiliga kaitstud]: ~ $ sõlme rakendus.js

Rakenduse käitamine Daemonina

Kui käivitame rakenduse ülalkirjeldatud standardmeetodil, töötab see esiplaanil ja rakendus peatub terminaliakna sulgemisel. Rakendust saame käivitada taustaprotsessina, lisades käsule ampersand (&) märgi.

[meiliga kaitstud]: ~ $ sõlme rakendus.js &

Selle meetodi probleem on see, et kui muudame oma rakenduskoodi, ei kajastu rakendatud muudatused automaatselt. Muudatuste rakendamiseks peame rakenduse taaskäivitama iga kord, kui muudame koodi. Rakenduse taustal töötamiseks ja muudatuste automaatseks rakendamiseks kasutame npm paketti pm2. Installige pm2 serverisse.

[meiliga kaitstud]: ~ $ sudo npm install -g pm2

Käivitage graphQL-i rakendus pm2 abil.

[meiliga kaitstud]: ~ $ pm2 algusrakendus.js - nimi "graphQL" - kell

Lipp '-name' nimetab taustaprotsessi ning saame nime käivitades rakenduse käivitada ja peatada. Lipp '-watch' jätkab rakenduse koodi kontrollimist, et muudatused kohe rakendada. Pm2 kohta saate lisateavet järgmise lingi kaudu

https: // pm2.võtmeetrika.io /

GraphQL API pärimine brauserist

Saame oma graphQL-i rakenduse konfigureerida nii, et brauserist saaks käsitsi graafQL-päringuid teha. Selleks peame looma eraldi HTTP-lõpp-punkti, millele paigaldame graphQL API-serveri. Ja seda HTTP-lõpp-punkti kasutatakse käsitsi päringute tegemiseks. Järgmine on kood, mis loob graphQL api serveri lõpp-punkti.

const väljendada = nõuda ('väljendada');
const graphqlHTTP = nõuda ('express-graphql');
const buildSchema = nõuda ('graphql');
const graphQLSchema = buildSchema ('
sisestage päring
teade: String
'
);
const func =
teade: () =>

tagastage 'kasutate graphql api serverit';

;
const server = ekspress ();
server.use ('/ graphql', graphqlHTTP (
skeem: graphQLSchema,
rootValue: func,
graphiql: tõsi
));
server.kuulama (3000);

Nüüd, pärast serveri käivitamist, pääseme GraphQL api serverile juurde järgmisel marsruudil.

http: // localhost: 3000 / graphql

GraphQL API pärimine CLI abil

Eelmises osas tegime brauserist graphQL päringuid graphiql abil. Nüüd teeme graphQL päringuid, kasutades Ubuntu käsurea liidest. Käsurealt HTTP POST-päringu tegemiseks kasutame curl-moodulit.

[meiliga kaitstud]: ~ $ curl -X POST -H "Content-Type: application / json" -d '"query": "message"' http: // localhost: 3000 / graphql

GraphQL API päring programmiliselt

GraphQL-i päringu programmiliseks koostamiseks kasutame sõlmes moodulit 'node-fetch'.js. Avage sõlm.js terminalis.

[meiliga kaitstud]: ~ $ sõlm

Nüüd tehke serverile HTTP POST-päring mooduli 'node-fetch' abil.

GraphQL on tõhus päringukeel ja see võib vähendada andmebaasi tehtud päringu reageerimisaega. Andmebaasist andmete toomiseks mõeldud standardsed api-kutsed hõlmavad vastuses palju kasutuid andmeid ja seega pikeneb reageerimisaeg, mis vähendab tõhusust. GraphQL abil andmebaasidesse tehtud päring tagastab ainult kasulikud andmed ja vähendab seega reageerimisaega. Selles artiklis oleme juurutanud oma graphQL-i rakenduse EC2-eksemplarile.

OpenTTD vs Simutrans
Oma transpordisimulatsiooni loomine võib olla lõbus, lõõgastav ja äärmiselt köitev. Sellepärast peate endale meelepärase leidmiseks kindlasti proovima...
OpenTTD õpetus
OpenTTD on seal üks populaarsemaid ärisimulatsioonimänge. Selles mängus peate looma suurepärase transpordiettevõtte. Alustate siiski alguses umbes 190...
SuperTuxKart Linuxile
SuperTuxKart on suurepärane pealkiri, mis on loodud selleks, et tuua teie Linuxi süsteemis tasuta Mario Karti kogemus. See on päris keeruline ja lõbus...