NodoJS

Come distribuire l'applicazione GraphQL utilizzando Node.js sul server EC2

Come distribuire l'applicazione GraphQL utilizzando Node.js sul server EC2
GraphQL, noto anche come Graph Query Language, stabilito e gestito da Facebook, è un linguaggio di query utilizzato per le API. È costruito utilizzando i linguaggi di programmazione JavaScript, Scala, Java e Ruby. Il suo scopo fondamentale è chiedere i dati dal server al client.GraphQL aggrega i dati da diverse fonti. L'aggregazione è il processo di filtraggio dei dati sul lato server e quindi l'invio dei dati filtrati al client. Senza aggregazione, inviamo tutti i dati al client, quindi i dati vengono filtrati sul lato client. Questo rende il sistema lento e possiamo migliorare l'efficienza di un'API utilizzando GraphQL. Qui impareremo a distribuire una semplice applicazione GraphQL usando node.js su un server EC2.

Installazione dei pacchetti richiesti

Il primo passo per distribuire la tua applicazione graphQL è preparare il tuo server installando i pacchetti richiesti. Accedi al server utilizzando SSH.

[email protected]:~$ ssh ubuntu@IPAdress -i KeyPair.pem

NOTA: assicurati che il gruppo di sicurezza dell'istanza sia configurato per consentire la connessione dalla porta 22 e che il file della chiave privata disponga di 400 autorizzazioni.

Aggiorna i repository di Ubuntu.

[email protected]:~$ sudo apt-get update -y

Ora installa il nodo.js e npm sul tuo server Ubuntu.

[email protected]:~$ sudo apt-get install nodejs -y
[email protected]:~$ sudo apt-get install npm -y

Verificare l'installazione controllando la versione di node.js e npm.

[email protected]:~$ node -v
[e-mail protetta]:~$ npm -v

Sposta l'applicazione GraphQL sul server EC2

L'istanza EC2 è pronta per distribuire applicazioni graphQL in node.js. Ora sposteremo il nostro codice nell'istanza EC2. Di seguito sono elencati due modi comuni per copiare il codice sul server e verranno discussi qui.

Copia l'applicazione usando il comando scp

Per copiare la tua applicazione sul server EC2 usando il comando scp, prima di tutto, rimuovi la directory 'node_modules' dalla tua applicazione graphQL. Questa directory contiene tutti i pacchetti npm necessari per eseguire l'applicazione. Installeremo questi pacchetti in seguito prima di avviare l'applicazione graphQL. Ora comprimi la directory del progetto in un file zip. Dopo aver creato il file zip, sposteremo il file zip del progetto sul server. Linux e Windows hanno metodi diversi per creare un file zip.

finestre

In Windows, fai clic con il pulsante destro del mouse sulla directory principale dell'applicazione e vai all'opzione "Invia a". Si aprirà un sottomenu. Fare clic sulla "Cartella compressa (zippata)" per creare un file zip dell'applicazione graphQL.

Linux o Mac

In Linux o Mac OS, utilizzeremo il comando 'zip' per creare un file zip del progetto.

[email protected]:~$ zip -r graphQL.zip graphQL

Il comando sopra genererà il graphQL.zip della directory graphQL.

Carica l'applicazione sul server

Ora abbiamo un file zip della nostra applicazione e possiamo caricare il file zip sul server usando il comando scp.

[email protected]:~$ scp -i KeyPair.pem graficoQL.zip ubuntu@IPAddress:~/

Il comando precedente sposterà il file zip del progetto nella home directory del server remoto tramite la connessione ssh. Ora sul server remoto, decomprimi il file zip del progetto.

[email protected]:~$ unzip graphQL.cerniera lampo

Clona applicazione da Github, Bitbucket o Gitlab

Il secondo metodo per copiare il codice dell'applicazione sul server è usare git. Installa git dalla riga di comando sul server EC2.

[email protected]:~$ sudo apt install git

Controlla la versione git per verificare l'installazione.

[email protected]:~$ git --version

Se non fornisce la versione di git, allora git non è installato. Ora clona l'applicazione da github, gitlab o bitbucket. Qui cloneremo il codice dell'applicazione da github.

[email protected]:~$ git clone ttps://github.com/contentful/l'app-esempio.nodejs

Avvio dell'applicazione GraphQL

Ora abbiamo la nostra applicazione graphQL sul server remoto. Vai alla directory principale dell'applicazione graphQL e installa i pacchetti npm richiesti per eseguire l'applicazione graphQL.

[email protected]:~$ cd graphQL
[email protected]:~$ sudo npm install

Questo comando analizzerà il pacchetto.json nel progetto e installa tutti i pacchetti npm richiesti. Dopo aver installato i pacchetti richiesti, ora avvieremo l'applicazione graphQL.

[email protected]:~$ app nodo.js

Esecuzione dell'applicazione come demone

Quando eseguiamo l'applicazione utilizzando il metodo standard come descritto sopra, viene eseguita in primo piano e l'applicazione si interrompe quando chiudi la finestra del terminale. Possiamo eseguire l'applicazione come processo in background aggiungendo il segno e commerciale (&) al comando.

[email protected]:~$ node app.js &

Il problema con questo metodo è che quando modifichiamo il codice dell'applicazione, le modifiche applicate non si rifletteranno automaticamente. Dovremo riavviare l'applicazione ogni volta che modifichiamo il codice per applicare le modifiche. Per eseguire l'applicazione in background e applicare le modifiche automaticamente, utilizzeremo un pacchetto npm denominato pm2. Installa pm2 sul server.

[email protected]:~$ sudo npm install -g pm2

Avvia l'applicazione graphQL usando pm2.

[email protected]:~$ pm2 avvia l'app.js --name “graphQL” --watch

Il flag '-name' nominerà il processo in background e possiamo avviare e fermare l'applicazione usando il nome. Il flag '-watch' continuerà a controllare il codice dell'applicazione per applicare immediatamente le modifiche. Puoi saperne di più su pm2 visitando il seguente link

https://pm2.chiave metrica.io/

Interrogazione dell'API GraphQL dal browser

Possiamo configurare la nostra applicazione graphQL per effettuare query graphQL dal browser manualmente. Per questo, dobbiamo creare un endpoint HTTP separato su cui monteremo il server API graphQL. E questo endpoint HTTP verrà utilizzato per effettuare query manuali. Di seguito è riportato il codice per creare l'endpoint del server API graphQL.

const express = require('express');
const graphqlHTTP = require('express-graphql');
const buildSchema = require('graphql');
const graphQLSchema = buildSchema('
tipo Query
messaggio: String
'
);
funzione costante =
messaggio: () =>

restituisce 'stai usando il server API di graphql';

;
const server = express();
server.use('/graphql', graphqlHTTP(
schema: graphQLSchema,
rootValue: funzione,
graphiql: vero
));
server.ascolta(3000);

Ora, dopo aver eseguito il server, possiamo accedere al server API di graphQL sul seguente percorso.

http://localhost:3000/graphql

Interrogazione dell'API GraphQL tramite CLI

Nella sezione precedente, abbiamo eseguito query graphQL dal browser utilizzando graphiql. Ora faremo query graphQL usando l'interfaccia della riga di comando in Ubuntu. Dalla riga di comando, per effettuare una richiesta HTTP POST, utilizzeremo il modulo curl.

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

Interrogazione dell'API GraphQL a livello di codice

Per eseguire query graphQL in modo programmatico, utilizzeremo il modulo 'node-fetch' in node.js. Nodo aperto.js nel terminale.

[email protected]:~$nodo

Ora fai la richiesta HTTP POST al server usando il modulo 'node-fetch'.

GraphQL è un linguaggio di query efficiente e può ridurre il tempo di risposta di una query fatta al database. Le chiamate API standard per recuperare i dati dal database coinvolgono molti dati non utili nella risposta e quindi il tempo di risposta aumenta, il che diminuisce l'efficienza. La query effettuata ai database utilizzando GraphQL restituisce solo i dati utili e quindi riduce il tempo di risposta. In questo articolo, abbiamo distribuito la nostra applicazione graphQL su un'istanza EC2.

I 10 migliori giochi da giocare su Ubuntu
La piattaforma Windows è stata una delle piattaforme dominanti per i giochi a causa dell'enorme percentuale di giochi che si stanno sviluppando oggi p...
I 5 migliori giochi arcade per Linux
Al giorno d'oggi, i computer sono macchine serie utilizzate per i giochi. Se non riesci a ottenere il nuovo punteggio più alto, saprai cosa intendo. I...
Battaglia per Wesnoth 1.13.6 Sviluppo rilasciato
Battaglia per Wesnoth 1.13.6 rilasciato il mese scorso, è la sesta versione di sviluppo nella 1.13.x e offre una serie di miglioramenti, in particolar...