GraphQL - Umgebungs-Setup
In diesem Kapitel erfahren Sie mehr über das Umgebungssetup für GraphQL. Um die Beispiele in diesem Tutorial auszuführen, benötigen Sie Folgendes:
Ein Computer unter Linux, MacOS oder Windows.
Ein Webbrowser, vorzugsweise die neueste Version von Google Chrome.
Eine neuere Version von Node.js wurde installiert. Die neueste LTS-Version wird empfohlen.
Visual Studio Code mit der Erweiterung GraphQL für VSCode oder einem Code-Editor Ihrer Wahl.
So erstellen Sie einen GraphQL-Server mit Nodejs
Wir werden einen detaillierten schrittweisen Ansatz zum Erstellen eines GraphQL-Servers mit Nodejs durchlaufen, wie unten gezeigt -
Schritt 1 - Überprüfen Sie die Knoten- und Npm-Versionen
Überprüfen Sie nach der Installation von NodeJs die Version von Node und npm mit den folgenden Befehlen auf dem Terminal:
C:\Users\Admin>node -v
v8.11.3
C:\Users\Admin>npm -v
5.6.0
Schritt 2 - Erstellen Sie einen Projektordner und öffnen Sie ihn in VSCode
Der Stammordner des Projekts kann als Test-App bezeichnet werden.
Öffnen Sie den Ordner mit dem Visual Studio Code Editor, indem Sie die folgenden Anweisungen befolgen -
C:\Users\Admin>mkdir test-app
C:\Users\Admin>cd test-app
C:\Users\Admin\test-app>code.
Schritt 3 - Erstellen Sie package.json und installieren Sie die Abhängigkeiten
Erstellen Sie eine package.json-Datei, die alle Abhängigkeiten der GraphQL-Serveranwendung enthält.
{
"name": "hello-world-server",
"private": true,
"scripts": {
"start": "nodemon --ignore data/ server.js"
},
"dependencies": {
"apollo-server-express": "^1.4.0",
"body-parser": "^1.18.3",
"cors": "^2.8.4",
"express": "^4.16.3",
"graphql": "^0.13.2",
"graphql-tools": "^3.1.1"
},
"devDependencies": {
"nodemon": "1.17.1"
}
}
Installieren Sie die Abhängigkeiten mit dem folgenden Befehl:
C:\Users\Admin\test-app>npm install
Schritt 4 - Erstellen Sie eine Flatfile-Datenbank im Datenordner
In diesem Schritt verwenden wir Flatfiles zum Speichern und Abrufen von Daten. Erstellen Sie Ordnerdaten und fügen Sie zwei Dateien hinzustudents.json und colleges.json.
Es folgt die colleges.json Datei -
[
{
"id": "col-101",
"name": "AMU",
"location": "Uttar Pradesh",
"rating":5.0
},
{
"id": "col-102",
"name": "CUSAT",
"location": "Kerala",
"rating":4.5
}
]
Es folgt die students.json Datei -
[
{
"id": "S1001",
"firstName":"Mohtashim",
"lastName":"Mohammad",
"email": "[email protected]",
"password": "pass123",
"collegeId": "col-102"
},
{
"id": "S1002",
"email": "[email protected]",
"firstName":"Kannan",
"lastName":"Sudhakaran",
"password": "pass123",
"collegeId": "col-101"
},
{
"id": "S1003",
"email": "[email protected]",
"firstName":"Kiran",
"lastName":"Panigrahi",
"password": "pass123",
"collegeId": "col-101"
}
]
Schritt 5 - Erstellen Sie eine Datenzugriffsschicht
Wir müssen einen Datenspeicher erstellen, der den Inhalt des Datenordners lädt. In diesem Fall benötigen wir Sammlungsvariablen, Studenten und Hochschulen . Wann immer die Anwendung Daten benötigt, verwendet sie diese Erfassungsvariablen.
Erstellen Sie die Datei db.js mit im Projektordner wie folgt:
const { DataStore } = require('notarealdb');
const store = new DataStore('./data');
module.exports = {
students:store.collection('students'),
colleges:store.collection('colleges')
};
Schritt 6 - Schemadatei erstellen, schema.graphql
Erstellen Sie eine Schemadatei im aktuellen Projektordner und fügen Sie den folgenden Inhalt hinzu:
type Query {
test: String
}
Schritt 7 - Resolver-Datei erstellen, resolvers.js
Erstellen Sie eine Resolver-Datei im aktuellen Projektordner und fügen Sie den folgenden Inhalt hinzu:
const Query = {
test: () => 'Test Success, GraphQL server is up & running !!'
}
module.exports = {Query}
Schritt 8 - Erstellen Sie Server.js und konfigurieren Sie GraphQL
Erstellen Sie eine Serverdatei und konfigurieren Sie GraphQL wie folgt:
const bodyParser = require('body-parser');
const cors = require('cors');
const express = require('express');
const db = require('./db');
const port = process.env.PORT || 9000;
const app = express();
const fs = require('fs')
const typeDefs = fs.readFileSync('./schema.graphql',{encoding:'utf-8'})
const resolvers = require('./resolvers')
const {makeExecutableSchema} = require('graphql-tools')
const schema = makeExecutableSchema({typeDefs, resolvers})
app.use(cors(), bodyParser.json());
const {graphiqlExpress,graphqlExpress} = require('apollo-server-express')
app.use('/graphql',graphqlExpress({schema}))
app.use('/graphiql',graphiqlExpress({endpointURL:'/graphql'}))
app.listen(
port, () => console.info(
`Server started on port ${port}`
)
);
Schritt 9 - Führen Sie die Anwendung aus und testen Sie sie mit GraphiQL
Überprüfen Sie die Ordnerstruktur der Projekttest-App wie folgt:
test-app /
-->package.json
-->db.js
-->data
students.json
colleges.json
-->resolvers.js
-->schema.graphql
-->server.js
Führen Sie den Befehl npm start wie unten angegeben aus -
C:\Users\Admin\test-app>npm start
Der Server läuft im 9000-Port, sodass wir die Anwendung mit dem GraphiQL-Tool testen können. Öffnen Sie den Browser und geben Sie die URL http: // localhost: 9000 / graphiql ein. Geben Sie die folgende Abfrage in den Editor ein -
{
Test
}
Die Antwort vom Server ist unten angegeben -
{
"data": {
"test": "Test Success, GraphQL server is running !!"
}
}