Installieren der erforderlichen Pakete
Der erste Schritt zur Bereitstellung Ihrer GraphQL -Anwendung besteht darin, Ihren Server durch Installation der erforderlichen Pakete bereitzustellen. Melden Sie sich mit SSH beim Server an.
Ubuntu@Ubuntu: ~ $ SSH Ubuntu@ipadress -i Tastatur.Pem
NOTIZ: Stellen Sie sicher.
Aktualisieren Sie Ubuntu -Repositories.
Ubuntu@Ubuntu: ~ $ sudo apt -Get -Update -y
Installieren Sie nun den Knoten.JS und NPM auf Ihrem Ubuntu -Server.
Ubuntu@Ubuntu: ~ $ sudo apt -Get Installieren Sie Nodejs -y
Ubuntu@Ubuntu: ~ $ sudo apt -Get Installieren Sie NPM -y
Überprüfen Sie die Installation, indem Sie die Version des Knotens überprüfen.JS und NPM.
Ubuntu@Ubuntu: ~ $ Node -v
Ubuntu@Ubuntu: ~ $ npm -v
Verschieben Sie die GraphQL -Anwendung auf den EC2 -Server
Die EC2 -Instanz ist bereit, GraphQL -Anwendungen im Knoten bereitzustellen.JS. Jetzt werden wir unseren Code in die EC2 -Instanz verschieben. Zwei gängige Möglichkeiten, den Code auf den Server zu kopieren, werden unten aufgeführt und werden hier erörtert.
Kopieren Sie die Anwendung mit dem SCP -Befehl
Um Ihre Anwendung mit dem Befehl SCP auf den EC2 -Server zu kopieren, entfernen Sie zunächst das Verzeichnis "node_modules" aus Ihrer GraphQL -Anwendung. Dieses Verzeichnis verfügt über alle NPM -Pakete, die zum Ausführen der Anwendung erforderlich sind. Wir werden diese Pakete später installieren, bevor wir die GraphQL -Anwendung starten. Komprimieren Sie nun das Projektverzeichnis in eine ZIP -Datei. Nach dem Erstellen der ZIP -Datei werden wir die Projektzip -Datei auf den Server verschieben. Linux und Windows haben unterschiedliche Methoden, um eine ZIP -Datei zu erstellen.
Fenster
Klicken Sie in Windows mit der rechten Maustast. Es wird ein Untermenü öffnen. Klicken Sie auf den Ordner "komprimiert (zipted)", um eine ZIP -Datei der GraphQL -Anwendung zu erstellen.
Linux oder Mac
In Linux oder Mac OS werden wir den Befehl "ZIP" verwenden, um eine ZIP -Datei des Projekts zu erstellen.
Ubuntu@Ubuntu: ~ $ ZIP -r Graphql.ZIP Graphql
Der obige Befehl generiert den GraphQL.ZIP -Datei des GraphQL -Verzeichnisses.
Laden Sie die Anwendung auf den Server hoch
Jetzt haben wir eine ZIP -Datei unserer Anwendung und können die ZIP -Datei mit dem Befehl SCP auf den Server hochladen.
Ubuntu@Ubuntu: ~ $ scp -i Tastatur.PEM Graphql.ZIP Ubuntu@iPaddress: ~/
Der obige Befehl verschiebt die Projekt -ZIP -Datei in das Heimverzeichnis des Remote -Servers über die SSH -Verbindung. Unzippieren Sie nun auf dem Remote -Server die Projektzip -Datei.
Ubuntu@Ubuntu: ~ $ unzip GraphQL.Reißverschluss
Klonanwendung von Github, Bitbucket oder GitLab
Die zweite Methode zum Kopieren des Anwendungscodes auf den Server verwendet Git. Installieren Sie Git aus der Befehlszeile auf dem EC2 -Server.
Ubuntu@Ubuntu: ~ $ sudo appt install Git
Überprüfen Sie die GIT -Version, um die Installation zu überprüfen.
Ubuntu@Ubuntu: ~ $ Git -Verssion
Wenn es nicht die Version von Git gibt, ist Git nicht installiert. Klonen Sie nun die Anwendung aus dem Github, Gitlab oder Bitbucket. Hier klonen wir den Anwendungscode aus dem GitHub.
Ubuntu@Ubuntu: ~ $ git klone ttps: // github.com/intastful/the-example-App.Nodejs
Starten Sie die GraphQL -Anwendung
Jetzt haben wir unsere GraphQL -Anwendung auf dem Remote -Server. Gehen Sie zum Root -Verzeichnis der GraphQL -Anwendung und installieren Sie die erforderlichen NPM -Pakete, um die GraphQL -Anwendung auszuführen.
Ubuntu@Ubuntu: ~ $ CD GraphQL
Ubuntu@Ubuntu: ~ $ sudo npm installieren
Dieser Befehl analysiert das Paket.JSON -Datei im Projekt und installieren Sie alle erforderlichen NPM -Pakete. Nach der Installation der erforderlichen Pakete starten wir jetzt die GraphQL -Anwendung.
Ubuntu@Ubuntu: ~ $ Node App.JS
Anwendung als Daemon ausführen
Wenn wir die Anwendung mithilfe der oben beschriebenen Standardmethode ausführen, wird im Vordergrund ausgeführt, und die Anwendung stoppt, wenn Sie das Terminalfenster schließen. Wir können die Anwendung als Hintergrundprozess ausführen, indem wir das Ampersand (&) Zeichen an den Befehl anhängen.
Ubuntu@Ubuntu: ~ $ Node App.JS &
Das Problem mit dieser Methode ist, dass die angewandten Änderungen, wenn wir unseren Anwendungscode ändern, nicht automatisch widerspiegeln. Wir müssen die Anwendung jedes Mal neu starten, wenn wir den Code ändern, um die Änderungen anzuwenden. Um die Anwendung im Hintergrund auszuführen und automatisch Änderungen anzuwenden, verwenden wir ein NPM -Paket mit dem Namen PM2. Installieren Sie PM2 auf dem Server.
Ubuntu@Ubuntu: ~ $ sudo npm install -g PM2
Starten Sie die GraphQL -Anwendung mit PM2.
Ubuntu@Ubuntu: ~ $ PM2 Start App.JS --Name "GraphQL" -Watch
Das Flag '-name' nennt den Hintergrundvorgang und wir können die Anwendung mit dem Namen starten und stoppen. Das Flag '-watch' überprüft den Anwendungscode, um Änderungen sofort anzuwenden. Sie können mehr über PM2 erfahren, indem Sie den folgenden Link besuchen
https: // pm2.Keymetrie.io/
Abfragen von GraphQL -API vom Browser
Wir können unsere GraphQL -Anwendung so konfigurieren, dass GraphQL -Abfragen aus dem Browser manuell erstellt werden. Dafür müssen wir einen separaten HTTP -Endpunkt erstellen, an dem wir den GraphQL -API -Server montieren werden. Und dieser HTTP -Endpunkt wird verwendet, um manuelle Abfragen zu erstellen. Im Folgenden finden Sie den Code zum Erstellen des GraphQL -API -Serverendpunkts.
const express = forderung ('express');
const graphQlhttp = required ('express-graphql');
const BuildSchema = required ('GraphQl');
const Graphqlschema = BuildSchema ('
Geben Sie Abfrage ein
Nachricht: String
'
);
const func =
Nachricht: () =>
Rückgabe "Sie verwenden den GraphQL -API -Server"
;
const server = express ();
Server.Verwendung ('/graphql', GraphQlhttp (
Schema: GraphQlschema,
rootValue: func,
Graphiql: True
));
Server.Hören Sie (3000);
Nach dem Ausführen des Servers können wir nun auf die folgende Route auf den GraphQL -API -Server zugreifen.
http: // localhost: 3000/graphql
Abfragen von GraphQL -API mit CLI
Im vorherigen Abschnitt haben wir GraphQL -Abfragen aus dem Browser mit GraphiQL erstellt. Jetzt werden wir GraphQL-Abfragen mithilfe der Befehlszeilenschnittstelle in Ubuntu erstellen. Aus der Befehlszeile, um eine HTTP -Postanforderung zu erstellen, werden wir das Curl -Modul verwenden.
Ubuntu@Ubuntu: ~ $ curl -x post -h "Inhaltstyp: application/json" -d '"query": "message"' http: // localhost: 3000/graphql
Abfragen von GraphQL API programmatisch
Um die GraphQL-Abfrage programmgesteuert zu machen, verwenden wir das "Knotenfetch" -Modul im Knoten.JS. Knoten offen.JS im Terminal.
Ubuntu@Ubuntu: ~ $ Node
Machen Sie nun das HTTP-Postanforderung an den Server mit dem Modul "Knotenfetch" an den Server.
GraphQL ist eine effiziente Abfragesprache und kann die Reaktionszeit einer Abfrage an die Datenbank verringern. Die Standard -API -Aufrufe zum Abrufen von Daten aus der Datenbank beinhalten viele unbenannte Daten in der Antwort, und daher erhöht sich die Reaktionszeit, was die Effizienz verringert. Die Abfrage an die Datenbanken unter Verwendung von GraphQL gibt nur die nützlichen Daten zurück und verringert daher die Antwortzeit. In diesem Artikel haben wir unsere GraphQL -Anwendung in einer EC2 -Instanz bereitgestellt.