NodeJS

Cum să implementați aplicația GraphQL folosind Node.js pe serverul EC2

Cum să implementați aplicația GraphQL folosind Node.js pe serverul EC2
GraphQL, cunoscut și sub numele de Graph Query Language, stabilit și întreținut de Facebook, este un limbaj de interogare utilizat pentru API-uri. Este construit folosind limbaje de programare JavaScript, Scala, Java și Ruby. Scopul său de bază este de a cere datele de la server la client.GraphQL agregă datele din diferite surse. Agregarea este procesul de filtrare a datelor de pe server și apoi trimiterea datelor filtrate către client. Fără agregare, trimitem toate datele către client, iar apoi datele sunt filtrate din partea clientului. Acest lucru face ca sistemul să fie lent și putem îmbunătăți eficiența unui API folosind GraphQL. Aici vom învăța să implementăm o aplicație simplă GraphQL folosind nod.js pe un server EC2.

Instalarea pachetelor necesare

Primul pas pentru implementarea aplicației graphQL este pregătirea serverului prin instalarea pachetelor necesare. Conectați-vă la server folosind SSH.

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

NOTĂ: Asigurați-vă că grupul de securitate al instanței este configurat pentru a permite conexiunea din portul 22 și că fișierul cu cheie privată are 400 de permisiuni.

Actualizați depozitele Ubuntu.

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

Acum instalați nodul.js și npm pe serverul dvs. ubuntu.

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

Verificați instalarea verificând versiunea nodului.js și npm.

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

Mutați aplicația GraphQL pe serverul EC2

Instanța EC2 este gata să implementeze aplicații graphQL în nod.js. Acum vom muta codul nostru în instanța EC2. Două moduri comune de a copia codul pe server sunt enumerate mai jos și vor fi discutate aici.

Copiați aplicația utilizând comanda scp

Pentru a copia aplicația dvs. pe serverul EC2 utilizând comanda scp, În primul rând, eliminați directorul „node_modules” din aplicația dvs. grafQL. Acest director conține toate pachetele npm necesare pentru a rula aplicația. Vom instala aceste pachete mai târziu înainte de a începe aplicația graphQL. Acum comprimați directorul proiectului într-un fișier zip. După crearea fișierului zip, vom muta fișierul zip al proiectului pe server. Linux și Windows au metode diferite pentru a crea un fișier zip.

Windows

În Windows, faceți clic dreapta pe directorul rădăcină al aplicației și accesați opțiunea „trimiteți către”. Se va deschide un submeniu. Faceți clic pe „Dosarul comprimat (zip)” pentru a crea un fișier zip al aplicației graphQL.

Linux sau Mac

În Linux sau Mac OS, vom folosi comanda „zip” pentru a crea un fișier zip al proiectului.

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

Comanda de mai sus va genera graphQL.fișier zip al directorului graphQL.

Încărcați aplicația pe server

Acum avem un fișier zip al aplicației noastre și putem încărca fișierul zip pe server folosind comanda scp.

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

Comanda de mai sus va muta fișierul zip al proiectului în directorul principal al serverului la distanță prin conexiunea ssh. Acum, pe serverul de la distanță, dezarhivați fișierul zip al proiectului.

[e-mail protejat]: ~ $ unzip graphQL.fermoar

Clonați aplicația de la Github, Bitbucket sau Gitlab

A doua metodă de copiere a codului aplicației pe server este utilizarea git. Instalați git din linia de comandă de pe serverul EC2.

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

Verificați versiunea git pentru a verifica instalarea.

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

Dacă nu oferă versiunea de git, atunci git nu este instalat. Acum clonați aplicația din github, gitlab sau bitbucket. Aici vom clona codul aplicației din github.

[e-mail protejat]: ~ $ git clonează ttps: // github.com / contentful / the-example-app.nodejs

Lansarea aplicației GraphQL

Acum avem aplicația noastră grafQL pe serverul de la distanță. Accesați directorul rădăcină al aplicației graphQL și instalați pachetele npm necesare pentru a rula aplicația graphQL.

[e-mail protejat]: ~ $ cd graphQL
[e-mail protejat]: ~ $ sudo npm instalare

Această comandă va analiza pachetul.json în proiect și instalați toate pachetele npm necesare. După instalarea pachetelor necesare, acum vom lansa aplicația graphQL.

[e-mail protejat]: aplicație ~ $ node.js

Rularea aplicației ca Daemon

Când rulăm aplicația folosind metoda standard descrisă mai sus, aceasta rulează în prim-plan, iar aplicația se oprește când închideți fereastra terminalului. Putem rula aplicația ca proces de fundal adăugând semnul ampersand (&) la comandă.

[e-mail protejat]: aplicație ~ $ node.js &

Problema cu această metodă este că, atunci când modificăm codul aplicației, modificările aplicate nu se vor reflecta automat. Va trebui să repornim aplicația de fiecare dată când modificăm codul pentru a aplica modificările. Pentru a rula aplicația în fundal și pentru a aplica modificările automat, vom folosi un pachet npm numit pm2. Instalați pm2 pe server.

[e-mail protejat]: ~ $ sudo npm install -g pm2

Porniți aplicația graphQL folosind pm2.

[e-mail protejat]: ~ $ pm2 începe aplicația.js - nume „graphQL” --watch

Steagul „-name” va denumi procesul de fundal și putem porni și opri aplicația folosind numele. Semnalizatorul „-ceas” va continua să verifice codul aplicației pentru a aplica modificările imediat. Puteți afla mai multe despre pm2 vizitând următorul link

https: // pm2.valori cheie.io /

Interogarea API-ului GraphQL din browser

Ne putem configura aplicația graphQL pentru a face manual interogări grafQL din browser. Pentru aceasta, trebuie să creăm un punct final HTTP separat pe care vom monta serverul API graphQL. Și acest punct final HTTP va fi utilizat pentru a face interogări manuale. Următorul este codul pentru a crea punctul final al serverului API grafQL.

const express = require ('express');
const graphqlHTTP = require ('express-graphql');
const buildSchema = require ('graphql');
const graphQLSchema = buildSchema ('
tastați interogare
mesaj: Șir
'
);
const func =
mesaj: () =>

returnează „folosești serverul API grafql”;

;
server const = express ();
Server.use ('/ graphql', graphqlHTTP (
schema: graphQLSchema,
rootValue: func,
graphiql: adevărat
));
Server.asculta (3000);

Acum, după rularea serverului, putem accesa serverul API graphQL pe următoarea rută.

http: // localhost: 3000 / graphql

Interogarea API-ului GraphQL folosind CLI

În secțiunea anterioară, am făcut interogări graphQL din browser folosind graphiql. Acum vom face interogări grafQL folosind interfața liniei de comandă din Ubuntu. Din linia de comandă, pentru a face o solicitare HTTP POST, vom folosi modulul curl.

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

Interogarea API-ului GraphQL programatic

Pentru a efectua interogări grafQL programate, vom folosi modulul „nod-fetch” din nod.js. Nod deschis.js în terminal.

[e-mail protejat]: ~ $ nod

Acum faceți cererea HTTP POST către server utilizând modulul „nod-preluare”.

GraphQL este un limbaj de interogare eficient și poate reduce timpul de răspuns al unei interogări făcute la baza de date. Apelurile standard API pentru a prelua date din baza de date implică multe date nefolositoare în răspuns și, prin urmare, timpul de răspuns crește, ceea ce scade eficiența. Interogarea făcută bazelor de date folosind GraphQL returnează doar datele utile și, prin urmare, scade timpul de răspuns. În acest articol, am implementat aplicația noastră grafQL pe o instanță EC2.

Middle mouse button not working in Windows 10
The middle mouse button helps you scroll through long webpages and screens with a lot of data. If that stops, well you will end up using the keyboard ...
How to change Left & Right mouse buttons on Windows 10 PC
It's quite a norm that all computer mouse devices are ergonomically designed for right-handed users. But there are mouse devices available which are s...
Emulate Mouse clicks by hovering using Clickless Mouse in Windows 10
Using a mouse or keyboard in the wrong posture of excessive usage can result in a lot of health issues, including strain, carpal tunnel syndrome, and ...