NodeJS

Jak nasadit aplikaci GraphQL pomocí uzlu.js na serveru EC2

Jak nasadit aplikaci GraphQL pomocí uzlu.js na serveru EC2
GraphQL, také známý jako Graph Query Language, založený a udržovaný Facebookem, je dotazovací jazyk používaný pro API. Je vytvořen pomocí programovacích jazyků JavaScript, Scala, Java a Ruby. Jeho základním účelem je požadovat data ze serveru na klienta.GraphQL agreguje data z různých zdrojů. Agregace je proces filtrování dat na straně serveru a následného odesílání filtrovaných dat klientovi. Bez agregace pošleme všechna data klientovi a poté se data filtrují na straně klienta. Díky tomu je systém pomalý a můžeme zlepšit efektivitu API pomocí GraphQL. Zde se naučíme nasadit jednoduchou aplikaci GraphQL pomocí uzlu.js na serveru EC2.

Instalace požadovaných balíčků

Prvním krokem k nasazení vaší aplikace GraphQL je připravit server instalací požadovaných balíčků. Přihlaste se k serveru pomocí SSH.

[chráněno e-mailem]: ~ $ ssh ubuntu @ IPAdress -i KeyPair.pem

POZNÁMKA: Ujistěte se, že skupina zabezpečení instance je nakonfigurována tak, aby umožňovala připojení z portu 22, a soubor soukromého klíče má oprávnění 400.

Aktualizujte úložiště Ubuntu.

[chráněno e-mailem]: ~ $ sudo apt-get update -y

Nyní nainstalujte uzel.js a npm na vašem serveru ubuntu.

[chráněno e-mailem]: ~ $ sudo apt-get install nodejs -y
[chráněno e-mailem]: ~ $ sudo apt-get install npm -y

Ověřte instalaci kontrolou verze uzlu.js a npm.

[chráněno e-mailem]: ~ $ node -v
[chráněno e-mailem]: ~ $ npm -v

Přesuňte aplikaci GraphQL na server EC2

Instance EC2 je připravena nasadit aplikace graphQL v uzlu.js. Nyní přesuneme náš kód do instance EC2. Níže jsou uvedeny dva běžné způsoby kopírování kódu na server, které zde budou popsány.

Zkopírujte aplikaci pomocí příkazu scp

Chcete-li zkopírovat svou aplikaci na server EC2 pomocí příkazu scp, nejprve odstraňte z aplikace graphQL adresář 'node_modules'. Tento adresář obsahuje všechny balíčky npm potřebné pro spuštění aplikace. Tyto balíčky nainstalujeme později před spuštěním aplikace graphQL. Nyní komprimujte adresář projektu do souboru zip. Po vytvoření souboru zip přesuneme soubor zip projektu na server. Linux a Windows mají různé metody pro vytvoření souboru ZIP.

Okna

V systému Windows klepněte pravým tlačítkem myši na kořenový adresář aplikace a přejděte na možnost Odeslat. Otevře se podnabídka. Kliknutím na složku „Komprimovaná (komprimovaná)“ vytvoříte soubor zip aplikace graphQL.

Linux nebo Mac

V systému Linux nebo Mac OS použijeme příkaz 'zip' k vytvoření souboru zip projektu.

[chráněno e-mailem]: ~ $ zip -r graphQL.zip graphQL

Výše uvedený příkaz vygeneruje graphQL.zip soubor graphQL adresáře.

Nahrajte aplikaci na server

Nyní máme zip soubor naší aplikace a můžeme soubor zip nahrát na server pomocí příkazu scp.

[chráněno e-mailem]: ~ $ scp -i KeyPair.pem graphQL.zip ubuntu @ IPAddress: ~ /

Výše uvedený příkaz přesune soubor zip projektu do domovského adresáře vzdáleného serveru přes připojení ssh. Nyní na vzdáleném serveru rozbalte zip soubor projektu.

[chráněno e-mailem]: ~ $ rozbalte graphQL.zip

Klonujte aplikaci z Github, Bitbucket nebo Gitlab

Druhá metoda kopírování kódu aplikace na server je pomocí git. Nainstalujte git z příkazového řádku na server EC2.

[email protected]: ~ $ sudo apt install git

Zkontrolujte verzi git a ověřte instalaci.

[chráněno e-mailem]: ~ $ git --version

Pokud neposkytuje verzi git, není git nainstalován. Nyní klonujte aplikaci z github, gitlab nebo bitbucket. Zde budeme klonovat kód aplikace z githubu.

[chráněno e-mailem]: ~ $ git clone ttps: // github.com / contentful / the-example-app.nodejs

Spuštění aplikace GraphQL

Nyní máme naši aplikaci graphQL na vzdáleném serveru. Přejděte do kořenového adresáře aplikace graphQL a nainstalujte požadované balíčky npm pro spuštění aplikace graphQL.

[chráněno e-mailem]: ~ $ cd graphQL
[chráněno e-mailem]: ~ $ sudo npm install

Tento příkaz provede analýzu balíčku.soubor JSON v projektu a nainstalujte všechny požadované balíčky NPM. Po instalaci požadovaných balíčků nyní spustíme aplikaci graphQL.

[chráněno e-mailem]: ~ $ uzel aplikace.js

Spuštěná aplikace jako démon

Když spustíme aplikaci pomocí standardní metody, jak je popsáno výše, běží v popředí a aplikace se zastaví, když zavřete okno terminálu. Aplikaci můžeme spustit jako proces na pozadí připojením znaku ampersand (&) k příkazu.

[chráněno e-mailem]: ~ $ uzel aplikace.js &

Problém této metody spočívá v tom, že když upravíme náš kód aplikace, použité změny se automaticky neprojeví. Budeme muset restartovat aplikaci pokaždé, když upravíme kód, aby se změny uplatnily. Abychom mohli aplikaci spouštět na pozadí a automaticky aplikovat změny, použijeme balíček npm s názvem pm2. Nainstalujte pm2 na server.

[chráněno e-mailem]: ~ $ sudo npm install -g pm2

Spusťte aplikaci graphQL pomocí pm2.

[chráněno e-mailem]: ~ $ pm2 spuštění aplikace.js - název „graphQL“ - hodinky

Příznak '-name' pojmenuje proces na pozadí a pomocí názvu můžeme spustit a zastavit aplikaci. Příznak „-hodinky“ bude pokračovat v kontrole kódu aplikace, aby se změny okamžitě uplatnily. Další informace o pm2 naleznete na následujícím odkazu

https: // pm2.keymetrics.io /

Dotazování GraphQL API z prohlížeče

Můžeme nakonfigurovat naši aplikaci graphQL tak, aby vytvářela dotazy graphQL z prohlížeče ručně. K tomu musíme vytvořit samostatný koncový bod HTTP, na který připojíme server GraphQL API. A tento koncový bod HTTP bude použit k manuálním dotazům. Následuje kód pro vytvoření koncového bodu serveru graphQL api.

const express = require ('express');
const graphqlHTTP = require ('express-graphql');
const buildSchema = require ('graphql');
const graphQLSchema = buildSchema ('
zadejte dotaz
zpráva: Řetězec
'
);
const func =
zpráva: () =>

vrátit 'používáte server Graphql API';

;
const server = express ();
serveru.použít ('/ graphql', graphqlHTTP (
schéma: graphQLSchema,
rootValue: func,
graphiql: true
));
serveru.poslouchat (3000);

Nyní, po spuštění serveru, můžeme přistupovat k serveru GraphQL API na následující trase.

http: // localhost: 3000 / graphql

Dotazování GraphQL API pomocí CLI

V předchozí části jsme vytvořili dotazy graphQL z prohlížeče pomocí graphiql. Nyní budeme dělat dotazy graphQL pomocí rozhraní příkazového řádku v ubuntu. Z příkazového řádku použijeme k vytvoření požadavku HTTP POST modul curl.

[chráněno e-mailem]: ~ $ curl -X POST -H "Content-Type: application / json" -d '"query": "message"' http: // localhost: 3000 / graphql

Programové dotazování na GraphQL API

Abychom mohli programově provádět graphQL dotaz, použijeme v uzlu modul 'node-fetch'.js. Otevřít uzel.js v terminálu.

[chráněno e-mailem]: ~ $ uzel

Nyní proveďte požadavek HTTP POST na server pomocí modulu 'node-fetch'.

GraphQL je efektivní dotazovací jazyk a může snížit dobu odezvy dotazu provedeného do databáze. Standardní volání API pro načtení dat z databáze zahrnují v odpovědi mnoho nepotřebných dat, a proto se zvyšuje doba odezvy, což snižuje účinnost. Dotaz provedený do databází pomocí GraphQL vrací pouze užitečná data, a tím snižuje dobu odezvy. V tomto článku jsme nasadili naši aplikaci graphQL na instanci EC2.

Přidejte gesta myši do Windows 10 pomocí těchto bezplatných nástrojů
V posledních letech se počítače a operační systémy značně vyvinuly. Bývaly doby, kdy uživatelé museli procházet správci souborů pomocí příkazů. Stejně...
Ovládejte a spravujte pohyb myši mezi více monitory ve Windows 10
Správce myší se dvěma displeji umožňuje ovládat a konfigurovat pohyb myši mezi více monitory zpomalením jeho pohybů poblíž hranice. Windows 10/8 vám u...
WinMouse vám umožňuje přizpůsobit a vylepšit pohyb ukazatele myši na PC s Windows
Chcete-li vylepšit výchozí funkce ukazatele myši, použijte freeware WinMouse. Přidává další funkce, které vám pomohou vytěžit ze své skromné ​​myši ma...