Cara Membuat Node.js RESTful API Menggunakan Express.js di Ubuntu 16.04 LTS

Dalam tutorial ini, Anda akan belajar cara mengatur API RESTful lengkap, yang akan melayani permintaan HTTP menggunakan Node.js dan Express sambil membalikkan proxy dengan NGINX, di Ubuntu 16,04 LTS. Kami akan menggunakan aplikasi yang disebut Postman, alat pengembangan API yang sangat terkenal, untuk menguji API kami dan memastikannya berfungsi penuh dan berfungsi dengan baik. Node.js adalah kerangka kerja JavaScript lintas-platform yang cepat berdasarkan mesin V8 Chrome. Ini digunakan di kedua aplikasi desktop dan server dan terkenal dengan penanganan loop acara single-threaded. Kami akan menggunakan Node.js sebagai backend untuk RESTful API kami, dibundel dengan Express.js, kerangka kerja aplikasi web kami dibuat untuk Node.js. Express.js dirilis sebagai perangkat lunak bebas dan terbuka. Express adalah sisi server, ditulis dalam JavaScript, dan dirancang untuk membuat API, yang membuatnya sempurna untuk proyek kami. Di sisi lain, Postman adalah klien HTTP yang sangat kuat, dengan pertimbangan pengembangan API. Ini fitur semua alat yang mungkin Anda inginkan untuk pengembangan API.

Menginstal tukang pos

Pertama, Anda ingin menuju ke situs web Postman , dan mengunduh dan menginstal Postman untuk PC utama Anda (Bukan server Anda). Semua instruksi pemasangan akan ada di situs web mereka.

Menginstal Node.js

Untuk memulai, pertama-tama kita perlu menginstal Node.js sehingga kita dapat mulai mengembangkan API kita. Kami akan mengunduh dan menginstal Node.js dari situs web resmi.

 curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
 sudo apt-get install -y nodejs

Selain itu, Anda juga ingin mengambil alat bantu yang diperlukan, yang akan sangat membantu dalam menyusun modul.

sudo apt-get install build-essential

Untuk tutorial ini, kita akan menggunakan Node.js versi LTS, yaitu versi 8.9.3.

Menginisialisasi proyek Node.js kami

Kita perlu menginisialisasi proyek Node.js baru, yang akan berisi aplikasi. Untuk melakukannya, buat direktori baru.

 mkdir expressapi 

Ubah ke direktori baru. Setelah masuk, jalankan npm initdan lengkapi semua permintaan yang diminta. Catat "titik masuk" aplikasi Anda: Anda akan membuat file ini nanti. Setelah selesai, Anda akan melihat package.jsonfile di direktori Anda saat ini. Ini bertindak sebagai deskripsi dari proyek kami, dan daftar semua dependensi yang diperlukan untuk berfungsi.

Menyiapkan Express.js

Sekarang kita akan mengkonfigurasi Express.js dan dependensinya.

npm install express

Proses instalasi akan dimulai. Diperlukan beberapa menit hingga semuanya selesai diunduh.

Mulai file utama kami

Selanjutnya, kita akan membuat file awal utama untuk API kita. Di sinilah Anda akan menggunakan "titik masuk" yang Anda lihat di package.jsonfile. Demi tutorial ini, saya akan menggunakan skema penamaan default index.js,.

touch index.js

Kemudian, buka di editor teks nano.

nano index.js

Di file utama kami, kami ingin memanggil semua paket utama kami terlebih dahulu dan mendaftarkan rute kami.

var express = require('express');        
var app = express();                 
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
var port = process.env.PORT || 8080;  
const router = express.Router();
router.get('/', function(req, res) {
    res.json({ message: 'API is Online!' });   
});

app.use('/api', router);
app.listen(port);
console.log('Listening on port ' + port);

Pada dasarnya yang kami lakukan di sini adalah menginisialisasi aplikasi kami, dan menyiapkan router dasar untuk API kami. Perhatikan bahwa kami mengatur port aplikasi kami 8080. Kami akan membutuhkan nomor ini ketika kami mengkonfigurasi API tenang kami. Sekarang kami siap untuk melanjutkan dan menguji API kami.

Menguji API kami dengan Tukang Pos

Di direktori proyek, jalankan yang berikut ini.

node <filename>.js

Ini akan memulai API, di mana <filename>file mulai yang Anda tentukan dalam package.jsonfile. Kemudian, buka tukang pos di PC / Mac Anda, dan klik tombol " New" di sudut kanan atas, lalu klik " Request". Ketika di sana, Anda akan melihat bilah yang bertuliskan " GET" di sebelahnya. Di sini kita akan memasukkan URL permintaan kita. Masukkan saja yang berikut di bagian URL permintaan dan klik " Send".

`http://your-server-ip:3000/api` 

Anda akan melihat " 'API is online'".

Rute API

Untuk menangani rute, kita akan menggunakan router Express. Jika Anda tidak tahu apa router itu, pada dasarnya bagaimana endpoint aplikasi merespons permintaan klien. Berikut adalah rute yang akan kami siapkan sebagai contoh:

  • /api/numbers - Menunjukkan semua angka dari 1-10.

  • /api/letters - Menunjukkan semua surat dari AZ.

Sekarang kita akan mengatur struktur middleware rute pertama kita, seperti itu.

router.use(function(req, res, next) {
   console.log('We've got something.');
   next() //calls next middleware in the application.
});

router.route('/numbers/:number').get((req, res) => {
     res.json({result: req.params.number + 1})
});

Dalam contoh ini, kami membuat situasi di mana pengguna dapat meminta jumlah angka +1 dengan memberikan bentuk kata itu, menggunakan metode GET. Kami menggunakan router.route()fungsi untuk menunjukkan nomor yang ingin kami kirim kembali sebagai hasilnya. Parameter dinamai dengan " :" di depannya. Kami mengakses parameter ini melalui req.params.

Ini sebuah contoh dengan huruf.

   router.route('/letters/:letter').get((req, res) => {
     res.json({result: req.params.letter.toUpperCase()})
});

Kami menggunakan metode yang sama seperti di atas, tetapi kami mengirim kembali surat itu sebagai huruf besar.

Pengantar NGINX

NGINX adalah perangkat lunak sumber terbuka terkenal yang digunakan untuk melayani web, membalikkan proxy, streaming, dan banyak lagi. Kami akan menggunakan NGINX untuk membalikkan proxy API kami, untuk memungkinkan kami menjalankannya di port 80, karena Node.js tidak mengizinkan koneksi pada port kurang dari 1024 tanpa akses root. Ini bisa berguna ketika menghubungkan domain Anda ke server Anda.

Menyiapkan NGINX

Untuk mulai menginstal NGINX Anda harus menjalankan yang berikut di terminal Anda, dan menunggu instalasi selesai.

sudo apt-get install nginx

Selanjutnya, kami ingin membuat file situs kami yang akan digunakan NGINX untuk membalikkan proxy aplikasi kami.

sudo nano /etc/nginx/sites-available-api.js

Isi file dengan yang berikut ini, lalu CTRL+ Ountuk menyimpannya.

server {
          listen 80;
          location / {
                proxy_set_header X-Real-IP 
                $remote_addr;
                proxy_set_header 
                X-Forwarded-For 
                $proxy_add_x_forwarded_for;
                proxy_set_header Host 
                $http_host;
                proxy_set_header 
                X-NginX-Proxy true; proxy_pass 
                http://127.0.0.1:8080/;
                proxy_redirect off;
                proxy_http_version 1.1;
                proxy_set_header Upgrade 
                $http_upgrade;
                proxy_set_header Connection 
                "upgrade";
                proxy_redirect off;
                proxy_set_header 
               X-Forwarded-Proto $scheme;
       }
}

Menggunakan port yang sama dengan yang kami jalankan pada aplikasi kami sebelumnya, kami memberitahu Nginx untuk mengalihkan semua permintaan dari alamat IP 80kami ke port ke API kami yang berjalan di port 8080.

Selanjutnya, aktifkan proxy terbalik dengan menghubungkan file kami yang baru dibuat ke sites-availablefolder:

sudo ln -s /etc/nginx/sites-available/api /etc/nginx/sites-available

Ini akan memastikan bahwa NGINX akan membalikkan proksi API kami.

Jalankan pertama kali dengan NGINX

Setelah kami menyelesaikan konfigurasi NGINX kami, kami akan memulai NGINX, kemudian memulai API kami. Pertama, nyalakan kembali NGINX.

sudo systemctl restart nginx

Kemudian, ubah kembali ke direktori API Anda, dan mulai saja.

node <filename>.js

Aplikasi akan berjalan, pada port 80. Cukup jalankan tes dari atas dengan Postman, untuk memastikan semuanya berfungsi dengan baik.

Menjaga API kami berjalan

Dalam lingkungan produksi, Anda ingin memastikan bahwa Anda memiliki manajer proses untuk aplikasi Node Anda, untuk memastikan bahwa mereka tetap berjalan selamanya di latar belakang. Dalam tutorial ini, kita akan menggunakan manajer proses yang disebut PM2 (Process Manager 2), yang merupakan manajer proses untuk aplikasi Node.js yang akan membuatnya tetap hidup selamanya dengan downtime minimal. PM2 hadir dengan banyak alat manajemen yang bermanfaat, seperti berhenti, memuat ulang, menjeda, dan lainnya. Untuk menginstal PM2, ketikkan yang berikut ini dan tunggu sampai instal.

sudo npm install pm2 -g

Setelah diinstal, yang harus Anda lakukan adalah memastikan Anda berada di direktori proyek, ketikkan yang berikut, dan aplikasi akan dimulai.

pm2 start <filename>.js

Mengelola aplikasi kita dengan PM2

Seperti disebutkan sebelumnya, PM2 memiliki beberapa alat bermanfaat yang dapat Anda gunakan untuk mengelola aplikasi Anda dengan lebih baik.

  • pm2 stop- Seperti namanya, ini memungkinkan Anda untuk menghentikan aplikasi yang sedang berjalan, dan mematikan prosesnya. Jika aplikasi Anda menghasilkan hasil yang tidak terduga, menghentikannya akan berguna.

  • pm2 list- Fungsi daftar memungkinkan Anda untuk melihat semua aplikasi yang sedang berjalan melalui PM2, dipetakan oleh namanya. Jika Anda perlu memeriksa waktu aktif aplikasi Anda dengan cepat, Anda harus menggunakan alat ini.

  • pm2 restart- Jika aplikasi Anda macet karena suatu alasan, dan Anda ingin memuat ulang, pm2 restart lakukan saja. Ini akan mematikan proses aplikasi, dan memulainya lagi, di bawah proses yang berbeda.

  • pm2 monit- Alat monitor bawaan PM2 memungkinkan Anda untuk melihat grafik rincian spesifik aplikasi Anda, seperti penggunaan CPU / RAM, dalam grafik gaya ncurses yang mudah digunakan. Ini berguna jika Anda ingin gambar visual dari beban aplikasi Anda.

Komentar akhir

Kami sekarang telah menyelesaikan tugas kami untuk membuat RESTful API, memanfaatkan Node.js, Express, dan membalikkan proxy dengan NGINX. Jangan ragu untuk memperluas tutorial ini. Anda dapat melakukan banyak hal hebat dengan API baru Anda, seperti menambahkan metode otentikasi, basis data, penanganan rute dan kesalahan yang lebih baik, dan masih banyak lagi. Jika Anda memiliki domain, dengan catatan "A" sudah disiapkan untuk alamat IP Anda, maka Anda akan dapat mengakses API Anda dari domain Anda. Jika Anda ingin mempelajari lebih lanjut tentang Express.js, kunjungi situs web mereka di http://expressjs.com . Untuk mempelajari lebih lanjut tentang NGINX dan membalikkan proxy, kunjungi http://nginx.com . Untuk membaca lebih lanjut tentang PM2, kunjungi halaman mereka di http://pm2.keymetrics.io .



Leave a Comment

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

6 Hal yang Sangat Menggila dari Nintendo Switch

6 Hal yang Sangat Menggila dari Nintendo Switch

Banyak dari Anda tahu Switch keluar pada Maret 2017 dan fitur-fitur barunya. Bagi yang belum tahu, kami sudah menyiapkan daftar fitur yang membuat 'Switch' menjadi 'gadget yang wajib dimiliki'.

Janji Teknologi Yang Masih Belum Ditepati

Janji Teknologi Yang Masih Belum Ditepati

Apakah Anda menunggu raksasa teknologi untuk memenuhi janji mereka? periksa apa yang belum terkirim.

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Baca blog untuk mengetahui berbagai lapisan dalam Arsitektur Big Data dan fungsinya dengan cara yang paling sederhana.

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Baca ini untuk mengetahui bagaimana Kecerdasan Buatan menjadi populer di antara perusahaan skala kecil dan bagaimana hal itu meningkatkan kemungkinan untuk membuat mereka tumbuh dan memberi keunggulan pada pesaing mereka.

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA telah berkembang cukup sulit bagi pengguna untuk dipecahkan dalam beberapa tahun terakhir. Apakah itu akan tetap efektif dalam deteksi spam dan bot di masa mendatang?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Saat Sains Berkembang dengan kecepatan tinggi, mengambil alih banyak upaya kita, risiko menundukkan diri kita pada Singularitas yang tidak dapat dijelaskan juga meningkat. Baca, apa arti singularitas bagi kita.

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Apa itu telemedicine, perawatan kesehatan jarak jauh dan dampaknya terhadap generasi mendatang? Apakah itu tempat yang bagus atau tidak dalam situasi pandemi? Baca blog untuk menemukan tampilan!

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Anda mungkin pernah mendengar bahwa peretas menghasilkan banyak uang, tetapi pernahkah Anda bertanya-tanya bagaimana cara mereka mendapatkan uang sebanyak itu? mari berdiskusi.

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Baru-baru ini Apple merilis macOS Catalina 10.15.4 pembaruan suplemen untuk memperbaiki masalah tetapi tampaknya pembaruan menyebabkan lebih banyak masalah yang mengarah ke bricking mesin mac. Baca artikel ini untuk mempelajari lebih lanjut