NodeJS

Cara Menyebarkan Aplikasi GraphQL Menggunakan Node.js pada Pelayan EC2

Cara Menyebarkan Aplikasi GraphQL Menggunakan Node.js pada Pelayan EC2
GraphQL, juga dikenal sebagai Graph Query Language, yang dibuat dan dikelola oleh Facebook, adalah bahasa pertanyaan yang digunakan untuk API. Ini dibangun menggunakan bahasa pemrograman JavaScript, Scala, Java, dan Ruby. Tujuan asasnya adalah untuk meminta data dari pelayan ke pelanggan.GraphQL mengumpulkan data dari sumber yang berbeza. Agregasi adalah proses menyaring data di sisi pelayan dan kemudian mengirimkan data yang disaring kepada klien. Tanpa penggabungan, kami mengirim semua data kepada klien, dan kemudian data tersebut disaring di sisi klien. Ini menjadikan sistem menjadi perlahan, dan kita dapat meningkatkan kecekapan API dengan menggunakan GraphQL. Di sini kita akan belajar menyebarkan aplikasi GraphQL sederhana menggunakan simpul.js pada pelayan EC2.

Memasang Pakej Yang Diperlukan

Langkah pertama untuk menggunakan aplikasi graphQL anda adalah dengan menyiapkan pelayan anda dengan memasang pakej yang diperlukan. Log masuk ke pelayan menggunakan SSH.

[dilindungi e-mel]: ~ $ ssh ubuntu @ IPAdress -i KeyPair.pem

NOTA: Pastikan kumpulan keselamatan contoh dikonfigurasikan untuk membenarkan sambungan dari port 22 dan fail kunci peribadi mempunyai izin 400.

Kemas kini repositori Ubuntu.

[dilindungi e-mel]: ~ $ sudo apt-get kemas kini -y

Sekarang pasang nod.js dan npm pada pelayan ubuntu anda.

[dilindungi e-mel]: ~ $ sudo apt-get install nodejs -y
[dilindungi e-mel]: ~ $ sudo apt-get install npm -y

Sahkan pemasangan dengan memeriksa versi nod.js dan npm.

[dilindungi e-mel]: ~ $ node -v
[dilindungi e-mel]: ~ $ npm -v

Pindahkan Aplikasi GraphQL ke Pelayan EC2

Contoh EC2 siap menyebarkan aplikasi graphQL di simpul.js. Sekarang kita akan memindahkan kod kita ke contoh EC2. Dua cara biasa untuk menyalin kod ke pelayan disenaraikan di bawah dan akan dibincangkan di sini.

Salin Aplikasi Menggunakan Perintah scp

Untuk menyalin aplikasi anda ke pelayan EC2 menggunakan perintah scp, Pertama sekali, hapus direktori 'node_modules' dari aplikasi graphQL anda. Direktori ini mempunyai semua pakej npm yang diperlukan untuk menjalankan aplikasi. Kami akan memasang pakej-pakej ini kemudian sebelum memulakan aplikasi graphQL. Sekarang kompres direktori projek ke dalam fail zip. Setelah membuat fail zip, kami akan memindahkan fail zip projek ke pelayan. Linux dan windows mempunyai kaedah yang berbeza untuk membuat fail zip.

Tingkap

Di windows, klik kanan pada direktori root aplikasi dan pergi ke pilihan 'kirim ke'. Ia akan membuka submenu. Klik pada folder 'Compressed (zipped)' untuk membuat fail zip aplikasi graphQL.

Linux atau Mac

Di Linux atau Mac OS, kami akan menggunakan arahan 'zip' untuk membuat fail zip projek.

[dilindungi e-mel]: ~ $ zip -r graphQL.zip grafik

Perintah di atas akan menghasilkan graphQL.fail zip dari direktori graphQL.

Muat naik Aplikasi ke Pelayan

Sekarang kami mempunyai fail zip aplikasi kami, dan kami dapat memuat naik fail zip ke pelayan dengan menggunakan perintah scp.

[dilindungi e-mel]: ~ $ scp -i KeyPair.pem grafQL.zip ubuntu @ IPAddress: ~ /

Perintah di atas akan memindahkan fail zip projek ke direktori utama pelayan jauh melalui sambungan ssh. Sekarang di pelayan jauh, buka zip fail projek.

[dilindungi e-mel]: ~ $ unzip graphQL.zip

Aplikasi Klon Dari Github, Bitbucket atau Gitlab

Kaedah kedua untuk menyalin kod aplikasi ke pelayan adalah menggunakan git. Pasang git dari baris arahan pada pelayan EC2.

[dilindungi e-mel]: ~ $ sudo apt pasang git

Periksa versi git untuk mengesahkan pemasangannya.

[dilindungi e-mel]: ~ $ git --versi

Sekiranya tidak memberikan versi git, maka git tidak dipasang. Sekarang klon aplikasi dari github, gitlab, atau bitbucket. Di sini kita akan mengklon kod aplikasi dari github.

[dilindungi e-mel]: ~ $ git clone ttps: // github.com / berpuas hati / contoh-aplikasi.nodejs

Memulakan Aplikasi GraphQL

Sekarang kita mempunyai aplikasi graphQL di pelayan jauh. Pergi ke direktori root aplikasi graphQL dan pasang pakej npm yang diperlukan untuk menjalankan aplikasi graphQL.

[dilindungi e-mel]: ~ $ cd graphQL
[dilindungi e-mel]: ~ $ sudo npm pasang

Perintah ini akan menganalisis pakej.fail json dalam projek dan pasang semua pakej npm yang diperlukan. Setelah memasang pakej yang diperlukan, sekarang kita akan memulakan aplikasi graphQL.

[dilindungi e-mel]: ~ aplikasi simpul $.js

Menjalankan Aplikasi sebagai Daemon

Ketika kita menjalankan aplikasi menggunakan metode standar seperti yang dijelaskan di atas, aplikasi berjalan di latar depan, dan aplikasi berhenti ketika Anda menutup jendela terminal. Kita boleh menjalankan aplikasi sebagai proses latar belakang dengan menambahkan tanda ampersand (&) ke perintah.

[dilindungi e-mel]: ~ aplikasi nod $.js &

Masalah dengan kaedah ini ialah apabila kita mengubah kod aplikasi kita, perubahan yang berlaku tidak akan mencerminkan secara automatik. Kita harus memulakan semula aplikasi setiap kali kita mengubah kod untuk menerapkan perubahan. Untuk menjalankan aplikasi di latar belakang dan menerapkan perubahan secara automatik, kami akan menggunakan pakej npm bernama pm2. Pasang pm2 di pelayan.

[dilindungi e-mel]: ~ $ sudo npm pasang -g pm2

Mulakan aplikasi graphQL menggunakan pm2.

[dilindungi e-mel]: ~ $ pm2 memulakan aplikasi.js --nama "graphQL" --watch

Bendera '-name' akan memberi nama proses latar belakang, dan kami dapat memulakan dan menghentikan aplikasi menggunakan nama. Bendera '-watch' akan terus memeriksa kod aplikasi untuk menerapkan perubahan dengan segera. Anda boleh mengetahui lebih lanjut mengenai pm2 dengan melayari pautan berikut

https: // pm2.kuncimetrik.io /

Pertanyaan API GraphQL dari Penyemak Imbas

Kami dapat mengkonfigurasi aplikasi graphQL kami untuk membuat pertanyaan graphQL dari penyemak imbas secara manual. Untuk ini, kita harus membuat titik akhir HTTP yang terpisah di mana kita akan memasang pelayan API grafik. Dan titik akhir HTTP ini akan digunakan untuk membuat pertanyaan manual. Berikut adalah kod untuk membuat titik akhir pelayan api grafQL.

const express = memerlukan ('express');
const graphqlHTTP = memerlukan ('express-graphql');
const buildSchema = memerlukan ('graphql');
const graphQLSchema = buildSchema ('
taip Pertanyaan
mesej: Rentetan
'
);
const func =
mesej: () =>

kembali 'anda menggunakan pelayan grafikql';

;
pelayan const = express ();
pelayan.gunakan ('/ graphql', graphqlHTTP (
skema: graphQLSchema,
rootValue: func,
graphiql: benar
));
pelayan.dengar (3000);

Sekarang, setelah menjalankan server, kita dapat mengakses server api graphQL pada rute berikut.

http: // localhost: 3000 / graphql

Menanyakan API GraphQL Menggunakan CLI

Pada bahagian sebelumnya, kami membuat pertanyaan graphQL dari penyemak imbas menggunakan graphiql. Sekarang kita akan membuat pertanyaan grafik menggunakan antarmuka baris perintah di ubuntu. Dari baris arahan, untuk membuat permintaan HTTP POST, kami akan menggunakan modul curl.

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

Menanyakan API GraphQL Secara Berprogram

Untuk membuat pertanyaan graphQL secara terprogram, kami akan menggunakan modul 'node-fetch' di simpul.js. Buka nod.js di terminal.

[dilindungi e-mel]: ~ $ simpul

Sekarang buat permintaan HTTP POST ke pelayan menggunakan modul 'node-fetch'.

GraphQL adalah bahasa pertanyaan yang cekap, dan dapat mengurangkan masa respons dari pertanyaan yang dibuat ke pangkalan data. Panggilan api standard untuk mengambil data dari pangkalan data melibatkan banyak data yang tidak digunakan dalam tindak balas, dan oleh itu masa tindak balas meningkat, yang menurunkan kecekapan. Pertanyaan yang dibuat ke pangkalan data menggunakan GraphQL hanya mengembalikan data yang berguna dan dengan itu mengurangkan masa tindak balas. Dalam artikel ini, kami telah menerapkan aplikasi graphQL kami pada instance EC2.

Distro Linux Terbaik untuk Permainan pada tahun 2021
Sistem operasi Linux telah jauh dari tampilan asal, ringkas dan berasaskan pelayan. OS ini telah berkembang pesat dalam beberapa tahun kebelakangan in...
Cara menangkap dan streaming sesi permainan anda di Linux
Pada masa lalu, bermain permainan hanya dianggap sebagai hobi, tetapi seiring dengan berjalannya waktu, industri permainan menyaksikan pertumbuhan yan...
Permainan Terbaik untuk Dimainkan dengan Penjejakan Tangan
Oculus Quest baru-baru ini memperkenalkan idea hebat penjejakan tangan tanpa pengawal. Dengan jumlah permainan dan aktiviti yang semakin meningkat yan...