SolmuJS

Johdanto GraphQL-sovellusliittymien ja -sovellusten tekemiseen solmussa.js

Johdanto GraphQL-sovellusliittymien ja -sovellusten tekemiseen solmussa.js

Tiedonsiirto ja tiedonsiirto minkä tahansa sovelluksen käyttöliittymän ja taustajärjestelmän välillä tapahtuu API: n (Application Programming Interface) kautta. Etu- ja loppusovellusten, kuten RESTful API: n, SOAP API: n, GraphQL API: n jne. GraphQL-sovellusliittymä on suhteellisen uusi tekniikka, ja se on paljon nopeampi kuin muun tyyppiset käytettävissä olevat sovellusliittymät. Tietojen noutaminen tietokannasta GraphQL-apin avulla on paljon nopeampaa kuin REST-sovellusliittymä. Kun hän käyttää GraphQL-sovellusliittymää, asiakkaalla on hallinto noutaa vain vaaditut tiedot kaikkien tietojen saamisen sijaan. siksi GraphQL API toimii nopeammin kuin REST API.

Pakettien asentaminen

Rakennamme solmun.js-sovellus, joka käyttää GraphQL-sovellusliittymää, joten meidän on asennettava solmu.js ja npm tähän ennen projektin aloittamista.

[sähköposti suojattu]: ~ $ sudo apt-get update -y
[sähköposti suojattu]: ~ $ sudo apt-get install nodejs
[sähköposti suojattu]: ~ $ sudo apt-get install npm

Perustetaan projekti

Käytämme solmun 'express' -kehystä.js rakentaa sovelluksemme. Luo hakemisto nimeltä 'graphql' ja aloita projekti.

[sähköposti suojattu]: ~ $ mkdir graphql
[sähköposti suojattu]: ~ $ cd graphql /
[sähköposti suojattu]: ~ $ npm init -y

MongoDB-asetukset

GraphQL-projektissamme käytämme MongoDB: tä tietokantaamme. MongoDB on skeemiton tietokanta, joka tallentaa tietoja avainparien muodossa. Asenna mongoDB noudattamalla annettuja ohjeita.

Tuo julkinen GPG-avain MongoDB: lle.

[sähköposti suojattu]: ~ $ wget -qO - https: // www.mongodb.org / staattinen / pgp / palvelin-4.4.asc | sudo apt-key lisää -


Luo mongodb-luettelotiedosto.

[sähköposti suojattu]: ~ $ echo "deb [arch = amd64, arm64] https: // repo.mongodb.org / apt / ubuntu bionic / mongodb-org / 4.4 multiverse "| sudo tee / etc / apt / sources.lista.d / mongodb-org-4.4.lista

Päivitä paikalliset arkistot.

[sähköposti suojattu]: ~ $ sudo apt-get update -y

Asenna mongodb-paketti.

[sähköposti suojattu]: ~ $ sudo apt-get install -y mongodb-org

Käynnistä ja ota mongodi käyttöön.palvelu.

[sähköposti suojattu]: ~ $ sudo systemctl start mongod.palvelu
[sähköposti suojattu]: ~ $ sudo systemctl enable mongod.palvelu

Npm-moduulien asentaminen

GraphQL-sovelluksellemme on asennettava joitain npm-paketteja. Asennamme cors, express, body-jäsennin, mangusti jne.

[sähköposti suojattu]: ~ $ cd graphql /
[sähköposti suojattu]: ~ $ npm asenna cors express body-parser mongoose --save

GraphQL-apin luomiseksi meidän on asennettava ylimääräinen npm-paketti nimeltä 'apollo-server-express.'Tätä npm-pakettia käytetään grafQL-palvelimen suorittamiseen kaikilla solmuilla.js HTTP-kehykset, kuten 'express.'

[sähköposti suojattu]: ~ $ npm asenna apollo-server-express --save

MongoDB-skeeman määrittäminen

Nyt ympäristömme on määritetty GraphQL-sovelluksellemme Node-palvelussa.js, ja on aika määritellä kaava sovelluksellemme. Luo tiedosto 'mallit / opiskelija.js 'projektin juurihakemistossa.

// opiskelijakaavion määrittely
const mongoose = vaatia ('mongoose');
const studentSchema = uusi mangusti.Skeema (
nimi:
tyyppi: merkkijono,
vaaditaan: totta
,
luokka:
tyyppi: Numero,
vaaditaan: totta
,
suuri:
tyyppi: merkkijono,
vaaditaan: totta

,
aikaleimat: totta
);
const Opiskelija = mangusti.malli ('Opiskelija', opiskelijaskema);
moduuli.vienti = Opiskelija, opiskelijakemia

Edellä määritellyssä skeemassa jokaisella opiskelijalla on oltava nimi, luokka ja pääaine.

GraphQL-sovellusliittymän rakentaminen

Kun olet luonut Student-skeeman, rakennamme nyt GraphQL API: n. Luo 'skeema.js 'kirjoittaa GraphQL-parametreja. GraphQL-sovellusliittymässä käytetään kahta parametria, 'tyypit' ja 'resolverit'. Tyypeissä määritämme skeemamme, kyselyt (esim.g., GET-pyyntöjen tekeminen) ja mutaatiot (esim.g., Päivitys- tai POISTA-pyyntöjen tekeminen) määritettyyn malliin. Kirjoitamme eri tyyppeissä määritellyt menetelmät kyselyjen ja mutaatioiden linkittämiseksi resolvers-tietokantaan.'

// tuodaan skeema ja moduuli
const gql = vaatia ('apollo-server-express');
const Opiskelija = vaatia ('./ mallit / opiskelija ').Opiskelija;
// Määritetään skeema, kysely ja mutaatiotyyppi
const typeDefs = gql '
tyyppi Opiskelija
minä tein!,
nimi: Merkkijono!,
luokka: Int!,
majuri: Jousisoitin!

kirjoita kysely
getStudents: [Opiskelija],
getStudentById (tunnus: ID!): Opiskelija

tyyppi Mutaatio
addStudent (nimi: Merkkijono!, luokka: Int!, majuri: Jousisoitin! ): Opiskelija
updateStudent (nimi: Merkkijono!, luokka: Int!, majuri: Jousisoitin! ): Opiskelija
deleteStudent (tunnus: ID! ): Opiskelija
'
// Ratkaisijoiden määrittely
const resolvers =
Kysely:
getStudents: (vanhempi, argumentit) =>
paluu Opiskelija.löytö();
,
getStudentById: (vanhempi, argumentoi) =>
paluu Opiskelija.findById (argumentit.id);

,
Mutaatio:
addStudent: (vanhempi, argumentit) =>
anna oppilas = uusi opiskelija (
nimi: args.nimi,
luokka: argumentit.luokassa,
pääaine: arg.suuri
);
paluuopiskelija.Tallentaa();
,
updateStudent: (vanhempi, argumentoi) =>
jos(!väittää.id) paluu;
paluu Opiskelija.findOneAndUpdate (
_id: väittää.id
,

$ set:
nimi: args.nimi,
luokka: argumentit.luokassa,
pääaine: arg.suuri

,
uusi: tosi, (virhe, opiskelija) =>
jos (virhe)
konsoli.loki (virhe);
muu ;
)



moduuli.vienti =
typeDefs,
ratkaisijat

GraphQL API -palvelimen luominen

Nyt olemme melkein valmiit luomaan GraphQL-sovelluksen. Ainoa askel jäljellä on luoda palvelin. Luo tiedosto nimeltä app.js 'määrittää palvelimen parametrit.

// tuodaan vaaditut paketit
const express = vaatia ('express');
const mongoose = vaatia ('mongoose');
const bodyParser = vaatia ('body-parser');
const cors = vaativat ('cors');
const ApolloServer = vaatia ('apollo-server-express');
// tuodaan skeema
const typeDefs, resolvers = vaatia ('./ skeema ');
// yhdistetään MongoDB: hen
const url = “mongodb: // 127.0.0.1: 27017 / opiskelijat ”;
const connect = mangusti.connect (url, useNewUrlParser: true);
kytkeä.sitten ((db) =>
konsoli.loki ('Yhteys onnistui');
, (virhe) =>
konsoli.loki (virhe);
);
// palvelimen luominen
const-palvelin = uusi ApolloServer (
typeDefs: typeDefs,
resolvers: resolvers
);
const app = ilmaista ();
sovellus.käyttö (bodyParser.json ());
sovellus.käyttö ('*', cors ());
palvelin.ApplyMiddleware (app);
sovellus.kuuntele (8000, () =>

konsoli.loki ('8000 kuuntelu');
)

Testataan GraphQL-sovellusliittymää

GraphQL-palvelimemme on käynnissä ja käynnissä portissa 8000, ja on aika testata GraphQL-sovellusliittymä. Avaa selaimen GraphQL-verkkosivusto seuraavasta URL-osoitteesta.

http: // localhost: 8000 / graphql

Ja se avaa seuraavan verkkosivun.


Lisää opiskelija tietokantaan graphQL API: n avulla.


Lisää vastaavasti lisää opiskelijoita ja kun olet lisännyt opiskelijan, hanki kaikki opiskelijat GraphQL-sovellusliittymän avulla.


Huomaa minkä tahansa opiskelijan henkilötunnus ja hanki tietty opiskelija käyttämään sen tunnusta.

Johtopäätös

Tietojen hakeminen tietokannasta tavallisen REST-sovellusliittymän avulla tekee kyselyn hitaaksi, koska joskus saamme enemmän tietoa kuin vaaditaan. GraphQL: n avulla voimme noutaa tarkalleen tarvittavat tiedot, mikä tekee GraphQL-sovellusliittymästä nopeamman. Tässä demoprojektissa meillä on vain yksi skeema, joten olemme luoneet GraphQL-sovellusliittymän tälle yksittäiselle skeemalle. Olemme myös määritelleet kolmelle neljälle menetelmälle skeemalle. Voit luoda useamman kuin yhden kyselyn tai mutaation sovelluksesi mukaan.

Kuinka parantaa FPS ää Linuxissa?
FPS tarkoittaa Kuvaa sekunnissa. FPS: n tehtävänä on mitata kehysnopeus videotoistoissa tai peliesityksissä. Yksinkertaisin sanoin sekunnissa näytettä...
Suosituimmat Oculus App Lab -pelit
Jos olet Oculus-kuulokemikrofonin omistaja, sinun täytyy olla tietoinen sivulatauksesta. Sivulataus on prosessi, jolla ei-kaupallista sisältöä asennet...
Top 10 Games to Play on Ubuntu
Windows platform has been one of the dominating platforms for gaming because of the huge percentage of games that are developing today to natively sup...