MazgasJS

Kaip įdiegti GraphQL programą naudojant mazgą.js EC2 serveryje

Kaip įdiegti GraphQL programą naudojant mazgą.js EC2 serveryje
„GraphQL“, taip pat žinoma kaip „Graph Query Language“, kurią sukūrė ir prižiūri „Facebook“, yra užklausų kalba, naudojama API. Jis sukurtas naudojant „JavaScript“, „Scala“, „Java“ ir „Ruby“ programavimo kalbas. Pagrindinis jo tikslas yra paprašyti duomenų iš serverio į klientą.„GraphQL“ kaupia duomenis iš skirtingų šaltinių. Apibendrinimas yra procesas, kai filtruojami duomenys serverio pusėje, o tada filtruojami duomenys siunčiami klientui. Be apibendrinimo, mes siunčiame visus duomenis klientui, o tada duomenys yra filtruojami kliento pusėje. Tai daro sistemą lėtą, ir mes galime pagerinti API efektyvumą naudodami „GraphQL“. Čia mes išmoksime įdiegti paprastą „GraphQL“ programą naudojant mazgą.js EC2 serveryje.

Reikiamų paketų diegimas

Pirmasis „graphQL“ programos diegimo žingsnis yra paruošti serverį įdiegiant reikiamus paketus. Prisijunkite prie serverio naudodami SSH.

[el. pašto saugoma]: ~ $ ssh ubuntu @ IPAdress -i KeyPair.pem

PASTABA: Įsitikinkite, kad egzemplioriaus saugos grupė sukonfigūruota leisti prisijungti iš 22 prievado, o privataus rakto failas turi 400 leidimų.

Atnaujinkite „Ubuntu“ saugyklas.

[apsaugotas el. paštas]: ~ $ sudo apt-get update -y

Dabar įdiekite mazgą.js ir npm jūsų ubuntu serveryje.

[apsaugotas el. pašto adresas]: ~ $ sudo apt-get install nodejs -y
[apsaugotas el. paštu]: ~ $ sudo apt-get install npm -y

Patikrinkite diegimą, patikrindami mazgo versiją.js ir npm.

[apsaugotas el. paštas]: ~ $ mazgas -v
[apsaugotas el. paštas]: ~ $ npm -v

Perkelkite „GraphQL“ programą į EC2 serverį

EC2 egzempliorius yra pasirengęs diegti graphQL programas mazge.js. Dabar mes perkelsime savo kodą į EC2 egzempliorių. Du įprasti kodo nukopijavimo į serverį būdai yra išvardyti toliau ir bus aptarti čia.

Nukopijuokite programą naudodami komandą scp

Norėdami nukopijuoti savo programą į EC2 serverį naudodami komandą scp, pirmiausia pašalinkite katalogą „node_modules“ iš savo graphQL programos. Šiame kataloge yra visi „npm“ paketai, reikalingi programai paleisti. Šiuos paketus įdiegsime vėliau prieš paleidžiant „grafQL“ programą. Dabar suspauskite projekto katalogą į ZIP failą. Sukūrę zip failą perkelsime projekto zip failą į serverį. „Linux“ ir „Windows“ turi skirtingus ZIP failo sukūrimo metodus.

„Windows“

„Windows“ dešiniuoju pelės mygtuku spustelėkite programos šakninį katalogą ir eikite į parinktį „siųsti“. Tai atvers submeniu. Spustelėkite „Suspaustas (uždarytas) aplankas“, kad sukurtumėte „graphQL“ programos zip failą.

„Linux“ arba „Mac“

„Linux“ ar „Mac OS“ naudosime komandą „zip“, kad sukurtume projekto zip failą.

[apsaugotas el. paštu]: ~ $ zip -r graphQL.zip graphQL

Pirmiau nurodyta komanda sugeneruos graphQL.zip failas iš graphQL katalogo.

Įkelkite programą į serverį

Dabar mes turime savo programos ZIP failą ir galime įkelti ZIP failą į serverį naudodami komandą scp.

[apsaugotas el. paštu]: ~ $ scp -i KeyPair.pem graphQL.zip ubuntu @ IP adresas: ~ /

Pirmiau nurodyta komanda perkelia projekto zip failą į nuotolinio serverio namų katalogą per ssh ryšį. Dabar nuotoliniame serveryje išpakuokite projekto ZIP failą.

[apsaugotas el. paštu]: ~ $ išpakuokite graphQL.užtrauktukas

Klonų taikymas iš „Github“, „Bitbucket“ ar „Gitlab“

Antrasis programos kodo nukopijavimo į serverį būdas yra „git“ naudojimas. Įdiekite „git“ iš komandinės eilutės EC2 serveryje.

[apsaugotas el. paštas]: ~ $ sudo apt install git

Patikrinkite „git“ versiją, kad patikrintumėte diegimą.

[apsaugotas el. paštas]: ~ $ git --versija

Jei jis nesuteikia „git“ versijos, tada „git“ nėra įdiegtas. Dabar klonuokite programą iš „github“, „gitlab“ ar „bitbucket“. Čia mes klonuosime programos kodą iš „github“.

[apsaugotas el. paštas]: ~ $ git clone ttps: // github.com / contentful / the-example-app.nodejs

„GraphQL“ programos paleidimas

Dabar mes turime savo graphQL programą nuotoliniame serveryje. Eikite į „graphQL“ programos šakninį katalogą ir įdiekite reikiamus „npm“ paketus, kad paleistumėte „grafQL“ programą.

[apsaugotas el. paštu]: ~ $ cd graphQL
[apsaugotas el. paštas]: ~ $ sudo npm install

Ši komanda analizuos paketą.json failą projekte ir įdiekite visus reikiamus npm paketus. Įdiegę reikiamus paketus, dabar mes paleisime graphQL programą.

[apsaugotas el. pašto adresas]: ~ $ mazgo programa.js

Programa veikia kaip „Daemon“

Kai paleidžiame programą naudodami standartinį metodą, kaip aprašyta aukščiau, ji veikia priekiniame plane ir programa sustoja, kai uždarote terminalo langą. Programą galime paleisti kaip foninį procesą, komandai pridėję ženklą „&“ (&).

[apsaugotas el. paštu]: ~ $ mazgo programa.js ir

Šio metodo problema yra ta, kad kai mes modifikuosime savo programos kodą, pritaikyti pakeitimai neatsispindės automatiškai. Turėsime iš naujo paleisti programą kiekvieną kartą, kai pakeisime kodą, kad pritaikytume pakeitimus. Norėdami paleisti programą fone ir automatiškai pritaikyti pakeitimus, naudosime „npm“ paketą pavadinimu pm2. Įdiekite serverį pm2.

[apsaugotas el. paštas]: ~ $ sudo npm install -g pm2

Paleiskite graphQL programą naudodami pm2.

[apsaugotas el. paštu]: ~ $ pm2 paleidimo programa.js - vardas „graphQL“ - laikrodis

„-Name“ vėliava pavadins foninį procesą, o mes galime paleisti ir sustabdyti programą naudodami pavadinimą. Vėliava „-watch“ tikrins programos kodą, kad pakeitimai būtų pritaikyti nedelsiant. Daugiau apie pm2 galite sužinoti apsilankę šioje nuorodoje

https: // pm2.rakto metriką.io /

Užklausa „GraphQL API“ iš naršyklės

Mes galime sukonfigūruoti savo grafQL programą taip, kad rankiniu būdu atliktų grafQL užklausas iš naršyklės. Tam mes turime sukurti atskirą HTTP galinį tašką, kuriame pritaisysime grafQL API serverį. Šis HTTP galinis taškas bus naudojamas atliekant rankines užklausas. Toliau pateiktas kodas, skirtas sukurtiQLQL api serverio galinį tašką.

const express = reikalauti ('express');
const graphqlHTTP = reikalauti ('express-graphql');
const buildSchema = reikalauti ('graphql');
const graphQLSchema = buildSchema ('
įveskite užklausą
pranešimas: Stygos

);
const func =
pranešimas: () =>

grąžinti „jūs naudojate graphql api serverį“;

;
const serveris = express ();
serverio.use ('/ graphql', graphqlHTTP (
schema: graphQLSchema,
rootValue: func,
graphiql: tiesa
));
serverio.klausytis (3000);

Dabar, paleisdami serverį, galime pasiekti „graphQL“ api serverį tokiu maršrutu.

http: // localhost: 3000 / graphql

Užklausa „GraphQL API“ naudojant CLI

Ankstesniame skyriuje mes atlikome graphQL užklausas iš naršyklės naudodami graphiql. Dabar atliksime „grafQLQL“ užklausas naudodami komandų eilutės sąsają „ubuntu“. Iš komandinės eilutės norėdami pateikti HTTP POST užklausą, naudosime garbanos modulį.

[apsaugotas el. paštas]: ~ $ curl -X POST -H "Content-Type: application / json" -d '"query": "message"' http: // localhost: 3000 / graphql

Užklausa „GraphQL API“ programiškai

Norėdami programiškai pateikti grafQL užklausą, mazge naudosime modulį „node-fetch“.js. Atidarykite mazgą.js terminale.

[apsaugotas el. paštas]: ~ $ mazgas

Dabar pateikite HTTP POST užklausą į serverį naudodami modulį „node-fetch“.

„GraphQL“ yra efektyvi užklausos kalba ir ji gali sutrumpinti užklausos, atliktos į duomenų bazę, atsakymo laiką. Standartiniai api skambučiai, norint gauti duomenis iš duomenų bazės, į atsakymą įtraukia daug nenaudingų duomenų, todėl padidėja atsakymo laikas, o tai sumažina efektyvumą. Užklausa, atlikta į duomenų bazes naudojant „GraphQL“, pateikia tik naudingus duomenis, taigi sutrumpina atsakymo laiką. Šiame straipsnyje mes įdiegėme savo grafQL programą EC2 egzemplioriuje.

Geriausios „Linux“ skirtos „Gamepad“ žemėlapių sudarymo programos
Jei jums patinka žaisti žaidimus „Linux“ su žaidimų pultu, o ne įprasta klaviatūra ir pelės įvesties sistema, yra keletas jums naudingų programų. Daug...
Naudingi įrankiai „Linux“ žaidėjams
Jei jums patinka žaisti žaidimus „Linux“ sistemoje, yra tikimybė, kad galbūt naudojote tokias programas ir įrankius kaip „Wine“, „Lutris“ ir „OBS Stud...
„HD Remastered“ žaidimai, skirti „Linux“, kurie niekada anksčiau nebuvo išleisti „Linux“
Daugelis žaidimų kūrėjų ir leidėjų siūlo senų žaidimų HD remasterį, kad prailgintų franšizės laiką. Prašome gerbėjų, prašančių suderinamumo su šiuolai...