NodeJS

Sådan distribueres GraphQL-applikation ved hjælp af node.js på EC2 Server

Sådan distribueres GraphQL-applikation ved hjælp af node.js på EC2 Server
GraphQL, også kendt som Graph Query Language, oprettet og vedligeholdt af Facebook, er et forespørgselssprog, der bruges til API'er. Det er bygget ved hjælp af programmeringssprog JavaScript, Scala, Java og Ruby. Dets grundlæggende formål er at bede om data fra server til klient.GraphQL samler data fra forskellige kilder. Aggregering er processen med at filtrere data på serversiden og derefter sende de filtrerede data til klienten. Uden sammenlægning sender vi alle data til klienten, og derefter filtreres dataene på klientsiden. Dette gør systemet langsomt, og vi kan forbedre effektiviteten af ​​en API ved hjælp af GraphQL. Her lærer vi at implementere en simpel GraphQL-applikation ved hjælp af node.js på en EC2-server.

Installation af påkrævede pakker

Det første trin til at implementere din grafQL-applikation er at klargøre din server ved at installere de nødvendige pakker. Log ind på serveren ved hjælp af SSH.

[e-mail-beskyttet]: ~ $ ssh ubuntu @ IPAdress -i KeyPair.pem

BEMÆRK: Sørg for, at instansens sikkerhedsgruppe er konfigureret til at tillade forbindelse fra port 22, og den private nøglefil har 400 tilladelse.

Opdater Ubuntu-arkiver.

[e-mail-beskyttet]: ~ $ sudo apt-get update -y

Installer nu node.js og npm på din ubuntu-server.

[e-mail-beskyttet]: ~ $ sudo apt-get install nodejs -y
[e-mail-beskyttet]: ~ $ sudo apt-get install npm -y

Bekræft installationen ved at kontrollere versionen af ​​noden.js og npm.

[e-mail-beskyttet]: ~ $ node -v
[e-mail-beskyttet]: ~ $ npm -v

Flyt GraphQL-applikationen til EC2-serveren

EC2-forekomsten er klar til at implementere graphQL-applikationer i node.js. Nu flytter vi vores kode til EC2-forekomsten. To almindelige måder at kopiere koden til serveren er angivet nedenfor og vil blive diskuteret her.

Kopier applikation ved hjælp af scp Command

For at kopiere din applikation til EC2-serveren ved hjælp af scp-kommandoen skal du først og fremmest fjerne mappen 'node_modules' fra din graphQL-applikation. Denne mappe har alle de npm-pakker, der kræves for at køre applikationen. Vi installerer disse pakker senere, før vi starter grafQL-applikationen. Komprimer nu projektmappen til en zip-fil. Efter oprettelse af zip-filen flytter vi projekt-zip-filen til serveren. Linux og windows har forskellige metoder til at oprette en zip-fil.

Windows

I windows skal du højreklikke på programmets rodkatalog og gå til indstillingen 'send til'. Det åbner en undermenu. Klik på 'Komprimeret (zippet) mappe' for at oprette en zip-fil til graphQL-applikationen.

Linux eller Mac

I Linux eller Mac OS bruger vi kommandoen 'zip' til at oprette en zip-fil af projektet.

[e-mail-beskyttet]: ~ $ zip -r graphQL.zip graphQL

Ovenstående kommando genererer graphQL.zip-fil i grafQL-biblioteket.

Upload applikation til serveren

Nu har vi en zip-fil af vores applikation, og vi kan uploade zip-filen til serveren ved hjælp af scp-kommandoen.

[e-mail-beskyttet]: ~ $ scp -i KeyPair.pem graphQL.zip ubuntu @ IPAddress: ~ /

Ovenstående kommando flytter projektets zip-fil til fjernserverens hjemmekatalog over ssh-forbindelsen. Udpak zip-filen til projektet nu på fjernserveren.

[e-mail-beskyttet]: ~ $ unzip-grafQLQL.lynlås

Klonapplikation fra Github, Bitbucket eller Gitlab

Den anden metode til at kopiere applikationskode til serveren bruger git. Installer git fra kommandolinjen på EC2-serveren.

[e-mail-beskyttet]: ~ $ sudo apt install git

Kontroller git-versionen for at kontrollere installationen.

[e-mail-beskyttet]: ~ $ git --version

Hvis det ikke giver versionen af ​​git, er git ikke installeret. Klon nu applikationen fra github, gitlab eller bitbucket. Her vil vi klone applikationskoden fra github.

[e-mail-beskyttet]: ~ $ git klon ttps: // github.com / contentful / eksemplet-app.nodejs

Start af GraphQL-applikationen

Nu har vi vores grafQL-applikation på fjernserveren. Gå til rodmappen til graphQL-applikationen, og installer de nødvendige npm-pakker for at køre graphQL-applikationen.

[e-mail-beskyttet]: ~ $ cd graphQL
[e-mail-beskyttet]: ~ $ sudo npm installation

Denne kommando analyserer pakken.json-fil i projektet og installer alle de nødvendige npm-pakker. Efter installation af de nødvendige pakker starter vi nu grafQL-applikationen.

[e-mail-beskyttet]: ~ $ node-app.js

Kører applikation som dæmon

Når vi kører applikationen ved hjælp af standardmetoden som beskrevet ovenfor, kører den i forgrunden, og applikationen stopper, når du lukker terminalvinduet. Vi kan køre applikationen som baggrundsproces ved at tilføje ampersand (&) -tegnet til kommandoen.

[e-mail-beskyttet]: ~ $ node-app.js &

Problemet med denne metode er, at når vi ændrer vores applikationskode, reflekteres de anvendte ændringer ikke automatisk. Vi bliver nødt til at genstarte applikationen hver gang vi ændrer koden for at anvende ændringerne. For at køre applikationen i baggrunden og anvende ændringer automatisk bruger vi en npm-pakke med navnet pm2. Installer pm2 på serveren.

[e-mail-beskyttet]: ~ $ sudo npm installation -g pm2

Start graphQL-applikationen ved hjælp af pm2.

[e-mail-beskyttet]: ~ $ pm2 start-app.js --navn “graphQL” - ur

Flag-'navnet 'vil navngive baggrundsprocessen, og vi kan starte og stoppe applikationen ved hjælp af navnet. Flagget '-watch' fortsætter med at kontrollere applikationskoden for at anvende ændringer med det samme. Du kan lære mere om pm2 ved at besøge følgende link

https: // pm2.keymetrics.io /

Forespørgsel om GraphQL API fra browser

Vi kan konfigurere vores graphQL-applikation til at foretage graphQL-forespørgsler fra browseren manuelt. Til dette er vi nødt til at oprette et separat HTTP-slutpunkt, hvorpå vi monterer graphQL API-serveren. Og dette HTTP-slutpunkt vil blive brugt til at foretage manuelle forespørgsler. Følgende er koden til at oprette graphQL api-serverens slutpunkt.

const express = kræve ('express');
const graphqlHTTP = kræver ('express-graphql');
const buildSchema = kræve ('graphql');
const graphQLSchema = buildSchema ('
skriv forespørgsel
besked: String
'
);
const func =
besked: () =>

returner 'du bruger graphql api server';

;
const server = express ();
server.brug ('/ graphql', graphqlHTTP (
skema: graphQLSchema,
rootValue: func,
graphiql: sandt
));
server.lyt (3000);

Nu, efter at have kørt serveren, kan vi få adgang til graphQL api-serveren på den følgende rute.

http: // localhost: 3000 / graphql

Forespørgsel om GraphQL API ved hjælp af CLI

I det foregående afsnit lavede vi graphQL-forespørgsler fra browseren ved hjælp af graphiql. Nu skal vi lave grafQL-forespørgsler ved hjælp af kommandolinjegrænsefladen i ubuntu. Fra kommandolinjen, for at lave en HTTP POST-anmodning, bruger vi krøllemodulet.

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

Forespørgsel om GraphQL API Programmatisk

For at lave grafQL-forespørgsel programmatisk bruger vi 'node-fetch'-modulet i node.js. Åbn node.js i terminalen.

[e-mail-beskyttet]: ~ $ node

Foretag nu HTTP POST-anmodningen til serveren ved hjælp af modulet 'node-fetch'.

GraphQL er et effektivt forespørgselssprog, og det kan reducere responstiden for en forespørgsel til databasen. Standard-API-opkald til at hente data fra databasen involverer mange ubrugelige data i svaret, og dermed øges responstiden, hvilket reducerer effektiviteten. Forespørgslen til databaser ved hjælp af GraphQL returnerer kun de nyttige data og reducerer dermed responstiden. I denne artikel har vi implementeret vores graphQL-applikation på en EC2-forekomst.

Mus WinMouse giver dig mulighed for at tilpasse og forbedre musemarkørens bevægelse på Windows-pc
WinMouse giver dig mulighed for at tilpasse og forbedre musemarkørens bevægelse på Windows-pc
Hvis du vil forbedre standardfunktionerne for din musemarkør, skal du bruge freeware WinMouse. Det tilføjer flere funktioner, der hjælper dig med at f...
Mus Museklik på venstre museknap fungerer ikke på Windows 10
Museklik på venstre museknap fungerer ikke på Windows 10
Hvis du bruger en dedikeret mus med din bærbare computer eller stationære computer, men musens venstre-klik-knap fungerer ikke på Windows 10/8/7 af en...
Mus Markøren hopper eller bevæger sig tilfældigt, mens han skriver i Windows 10
Markøren hopper eller bevæger sig tilfældigt, mens han skriver i Windows 10
Hvis du finder ud af, at din musemarkør hopper eller bevæger sig alene, automatisk tilfældigt, mens du skriver Windows-bærbar computer eller computer,...