Bagaimana Membuat API RESTful Node.js Menggunakan Express.js pada Ubuntu 16.04 LTS

Dalam tutorial ini, anda akan belajar bagaimana menyiapkan RESTful API lengkap, yang akan melayani permintaan HTTP menggunakan Node.js dan Express sambil membalikkannya dengan NGINX, pada Ubuntu 16.04 LTS. Kami akan menggunakan aplikasi yang disebut Postman, alat pembangunan API yang sangat terkenal, untuk menguji API kami dan pastikan ia berfungsi sepenuhnya dan berfungsi dengan baik. Node.js adalah rangka kerja JavaScript yang pantas dan lintas platform berdasarkan pada enjin V8 Chrome. Ia digunakan dalam aplikasi desktop dan pelayan dan terkenal dengan pengendalian gelung utas tunggal. Kami akan menggunakan Node.js sebagai backend untuk API RESTful kami, digabungkan dengan Express.js, rangka kerja aplikasi web kami yang dibina untuk Node.js. Express.js dikeluarkan sebagai perisian percuma dan terbuka. Express adalah sisi pelayan, ditulis dalam JavaScript, dan direka untuk membina API, yang menjadikannya sempurna untuk projek kami. Sebaliknya, Postman adalah pelanggan HTTP yang sangat berkuasa, dengan perkembangan API dalam fikiran. Ia mempunyai semua alat yang mungkin anda inginkan untuk pembangunan API.

Memasang Postman

Pertama, anda ingin pergi ke laman web Postman , dan memuat turun dan memasang Postman untuk PC utama anda (Bukan pelayan anda). Semua arahan pemasangan akan berada di laman web mereka.

Memasang Node.js

Untuk memulakan, pertama-tama kita perlu memasang Node.js supaya kita dapat mula mengembangkan API kita. Kami akan memuat turun dan memasang Node.js dari laman web rasmi.

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

Di samping itu, anda juga ingin mengambil alat binaan yang diperlukan, yang akan membantu dalam menyusun modul.

sudo apt-get install build-essential

Untuk tutorial ini, kami akan menggunakan versi LTS dari Node.js, iaitu versi 8.9.3.

Memulakan projek Node.js kami

Kita perlu memulakan projek Node.js baru, yang akan mengandungi aplikasi. Untuk melakukan itu, buat direktori baru.

 mkdir expressapi 

Tukar ke direktori baru. Sekali di dalam, jalankan npm initdan lengkapkan semua arahan yang diperlukan. Perhatikan "titik masuk" aplikasi anda: anda akan membuat fail ini kemudian. Sebaik sahaja anda selesai, anda akan melihat package.jsonfail dalam direktori semasa anda. Ia bertindak sebagai penerangan projek kami, dan menyenaraikan semua kebergantungan yang diperlukan untuk berfungsi.

Menyediakan Express.js

Sekarang kita akan mengkonfigurasi Express.js dan ia adalah dependencies.

npm install express

Proses pemasangan akan bermula. Proses memuat turun akan mengambil masa beberapa minit.

Memulakan fail utama kami

Seterusnya, kami akan membuat fail permulaan utama untuk API kami. Di sinilah anda akan menggunakan "titik masuk" yang anda lihat dalam package.jsonfail. Demi tutorial ini, saya akan menggunakan lalai menamakan skim, index.js.

touch index.js

Kemudian, buka di penyunting teks nano.

nano index.js

Dalam fail utama kami, kami ingin memanggil semua pakej utama kami dan mendaftar laluan 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 asasnya, apa yang kita lakukan di sini ialah memulakan aplikasi kami, dan menubuhkan router asas untuk API kami. Perhatikan bahawa kami menetapkan port aplikasi kami ke 8080. Kami akan memerlukan nombor ini apabila kami mengkonfigurasi API RESTful kami. Sekarang kita sudah bersedia untuk meneruskan dan menguji API kami.

Menguji API kami dengan Postman

Dalam direktori projek, jalankan yang berikut.

node <filename>.js

Ini akan memulakan API, di mana <filename>fail permulaan yang anda nyatakan dalam package.jsonfail. Kemudian, buka Postman di PC / Mac anda, dan klik butang " New" di sudut kanan atas, kemudian klik " Request". Semasa di sana, anda akan melihat bar yang bertuliskan " GET" di sebelahnya. Di sini kami akan memasukkan URL permintaan kami. Cukup masukkan yang berikut di bahagian URL permintaan dan klik " Send".

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

Anda akan melihat " 'API is online'".

Laluan API

Untuk menangani laluan, kami akan menggunakan penghala Express. Sekiranya anda tidak tahu apa itu penghala, pada dasarnya bagaimana titik akhir aplikasi bertindak balas terhadap permintaan pelanggan. Berikut adalah laluan yang akan kami atur sebagai contoh:

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

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

Kini kami akan menubuhkan struktur middleware laluan pertama kami, 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 menyediakan satu keadaan di mana pengguna boleh meminta jumlah nombor + 1 dengan menyediakan borang perkataan dengan menggunakan kaedah GET. Kami menggunakan router.route()fungsi ini untuk menunjukkan bilangan nombor yang ingin kami hantar semula. Parameter dinamakan dengan " :" di hadapannya. Kami mengakses parameter ini melalui req.params.

Inilah contoh dengan huruf.

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

Kami menggunakan kaedah yang sama seperti di atas, tetapi kami menghantar semula huruf itu sebagai huruf besar.

Pengenalan kepada NGINX

NGINX adalah perisian sumber terbuka yang terkenal yang digunakan untuk perkhidmatan web, proksi terbalik, streaming dan banyak lagi. Kami akan menggunakan NGINX untuk membalikkan proksi API kami, untuk membolehkan kami menjalankannya pada port 80, kerana Node.js tidak membenarkan sambungan pada port kurang dari 1024 tanpa akses root. Perkara ini sangat berguna semasa menghubungkan domain anda ke pelayan anda.

Menyiapkan NGINX

Untuk mula memasang NGINX, anda perlu menjalankan yang berikut dalam terminal anda, dan tunggu pemasangan selesai.

sudo apt-get install nginx

Seterusnya, kami akan membuat fail laman web kami yang NGINX akan digunakan untuk membalikkan proksi aplikasi kami.

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

Tandakan fail dengan yang berikut, kemudian 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;
       }
}

Dengan menggunakan port yang sama, kami menjalankan aplikasi kami pada awal, kami memberitahu Nginx untuk mengalihkan semua permintaan dari alamat IP kami pada port 80ke API kami yang menjalankan pada port 8080.

Seterusnya, aktifkan proksi terbalik dengan menyandarkan fail kami yang baru dibuat ke sites-availablefolder:

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

Ini akan memastikan bahawa NGINX akan membalikkan proksi API kami.

Lari pertama dengan NGINX

Setelah selesai konfigurasi NGINX kami, kami akan mulai NGINX, kemudian mulakan API kami. Pertama, mulakan semula NGINX.

sudo systemctl restart nginx

Kemudian, tukar kembali ke direktori API anda, dan mulakannya.

node <filename>.js

Aplikasi akan berjalan, di port 80. Hanya jalankan ujian dari atas dengan Postman, untuk memastikan semuanya berfungsi dengan baik.

Menjaga API kami terus berjalan

Dalam persekitaran pengeluaran, anda ingin memastikan bahawa anda mempunyai pengurus proses untuk aplikasi Node anda, untuk memastikan bahawa mereka tetap berjalan selamanya di latar belakang. Dalam tutorial ini, kita akan menggunakan pengurus proses yang disebut PM2 (Process Manager 2), yang merupakan pengurus proses untuk aplikasi Node.js yang akan menjadikannya hidup selamanya dengan waktu henti minimum. PM2 dilengkapi dengan banyak alat pengurusan yang berguna, seperti berhenti, memuat semula, berhenti sebentar dan banyak lagi. Untuk memasang PM2, taipkan yang berikut dan tunggu untuk dipasang.

sudo npm install pm2 -g

Setelah dipasang, yang harus anda lakukan adalah memastikan anda berada di direktori projek, ketik yang berikut, dan aplikasi akan dimulakan.

pm2 start <filename>.js

Menguruskan permohonan kami dengan PM2

Seperti yang dinyatakan sebelum ini, PM2 mempunyai beberapa alat berguna yang boleh anda gunakan untuk mengurus permohonan anda dengan lebih baik.

  • pm2 stop- Seperti namanya, ini membolehkan anda menghentikan aplikasi yang sedang berjalan dan membunuh prosesnya. Sekiranya aplikasi anda menghasilkan hasil yang tidak dijangka, maka menghentikannya akan sangat berguna.

  • pm2 list- Fungsi senarai membolehkan anda melihat semua aplikasi yang sedang berjalan melalui PM2, dipetakan oleh nama mereka. Sekiranya anda perlu memeriksa waktu operasi aplikasi dengan cepat, anda harus menggunakan alat ini.

  • pm2 restart- Sekiranya aplikasi anda membeku atas sebab tertentu, dan anda ingin memuat semulanya, restart pm2 tidak semestinya. Ia akan membunuh proses permohonan, dan memulakannya sekali lagi, di bawah proses yang berbeza.

  • pm2 monit- Alat monitor terbina dalam PM2 membolehkan anda melihat grafik butiran spesifik aplikasi anda, seperti penggunaan CPU / RAM, dalam grafik gaya ncurses yang mesra pengguna. Ini berguna sekiranya anda mahukan gambar visual memuatkan aplikasi anda.

Ucapan akhir

Kami kini telah menyelesaikan tugas kami untuk membuat RESTful API, menggunakan Node.js, Express, dan membalikkannya dengan NGINX. Jangan ragu untuk membaca tutorial ini. Anda boleh melakukan banyak hal hebat dengan API baru anda, seperti menambah kaedah pengesahan, pangkalan data, pengendalian laluan yang lebih baik dan pengendalian ralat, dan banyak lagi. Sekiranya anda memiliki domain, dengan catatan "A" sudah disiapkan ke alamat IP anda, maka Anda dapat mengakses API dari domain anda. Sekiranya anda ingin mengetahui lebih lanjut mengenai Express.js, lawati laman web mereka di http://expressjs.com . Untuk mengetahui lebih lanjut mengenai NGINX dan pembalikan proksi, lawati http://nginx.com . Untuk membaca lebih lanjut mengenai PM2, lawati halaman mereka di http://pm2.keymetrics.io .



Leave a Comment

Cara Memasang Platform Keranjang Belanja LiteCart di Ubuntu 16.04

Cara Memasang Platform Keranjang Belanja LiteCart di Ubuntu 16.04

LiteCart adalah platform keranjang belanja sumber terbuka dan bebas yang ditulis dalam PHP, jQuery, dan HTML 5. Ia adalah perisian elektronik e-dagang yang ringkas, ringan, dan mudah digunakan

Sediakan NFS Share di Debian

Sediakan NFS Share di Debian

NFS adalah sistem fail berasaskan rangkaian yang membolehkan komputer mengakses fail di seluruh rangkaian komputer. Panduan ini menerangkan bagaimana anda boleh mendedahkan folder di atas NF

Cara Memasang Matomo Analytics di Fedora 28

Cara Memasang Matomo Analytics di Fedora 28

Menggunakan Sistem Berbeza? Matomo (dahulunya Piwik) adalah platform analitik sumber terbuka, alternatif terbuka kepada Google Analytics. Sumber Matomo dihoskan o

Sediakan Pelayan TeamTalk di Linux

Sediakan Pelayan TeamTalk di Linux

TeamTalk adalah sistem persidangan yang membolehkan pengguna melakukan perbincangan audio / video berkualiti tinggi, sembang teks, memindahkan fail, dan berbagi layar. Ia i

Cara Pasang dan Konfigur CyberPanel pada Server CentOS 7 anda

Cara Pasang dan Konfigur CyberPanel pada Server CentOS 7 anda

Menggunakan Sistem Berbeza? Pengenalan CyberPanel adalah salah satu panel kawalan pertama di pasaran yang merupakan sumber terbuka dan menggunakan OpenLiteSpeed. Apa itu

Cara Memasang Apache Maven 3.5 di CentOS 7

Cara Memasang Apache Maven 3.5 di CentOS 7

Apache Maven adalah alat pengurusan projek perisian sumber terbuka dan bebas yang banyak digunakan untuk menyebarkan aplikasi berbasis Java. Prasyarat yang baru

Cara Memasang Backdrop CMS 1.8.0 pada VPS CentOS 7 LAMP

Cara Memasang Backdrop CMS 1.8.0 pada VPS CentOS 7 LAMP

Menggunakan Sistem Berbeza? Backdrop CMS 1.8.0 adalah Sistem Pengurusan Kandungan (CMS) sumber mudah alih, mudah alih, percuma dan terbuka yang membolehkan kami

Cara Mengakses VPS Vultr Anda

Cara Mengakses VPS Vultr Anda

Vultr menyediakan beberapa cara yang berbeza untuk mengakses VPS anda untuk mengkonfigurasi, memasang, dan menggunakan. Akses Kredensial Kelayakan akses lalai untuk VPS anda

Cara Membangun Brotli Dari Sumber di Ubuntu 18.04 LTS

Cara Membangun Brotli Dari Sumber di Ubuntu 18.04 LTS

Menggunakan Sistem Berbeza? Brotli adalah kaedah pemampatan baru dengan nisbah mampatan yang lebih baik daripada GZIP. Kod sumbernya dihoskan secara umum di Githu ini

Menggunakan Paparan MySQL pada Debian 7

Menggunakan Paparan MySQL pada Debian 7

Pengenalan MySQL mempunyai ciri hebat yang dikenali sebagai pandangan. Paparan adalah pertanyaan yang disimpan. Anggap mereka sebagai alias untuk pertanyaan yang panjang. Dalam panduan ini,

Cara Pasang AirSonic pada CentOS 7

Cara Pasang AirSonic pada CentOS 7

Menggunakan Sistem Berbeza? AirSonic adalah pelayan streaming media sumber terbuka dan terbuka. Dalam tutorial ini, saya akan membimbing anda melalui proses penyebaran a

Cara Pasang CD Strider pada Ubuntu 18.04

Cara Pasang CD Strider pada Ubuntu 18.04

Pengenalan CD Strider adalah platform penyebaran sumber terbuka berterusan. Aplikasi ini ditulis dalam Node.js dan menggunakan MongoDB sebagai backend penyimpanan. Selesaikan

Cara Memasang Subrion 4.1 CMS pada Ubuntu 16.04 LAMP VPS

Cara Memasang Subrion 4.1 CMS pada Ubuntu 16.04 LAMP VPS

Menggunakan Sistem Berbeza? Subrion 4.1 CMS adalah Sistem Pengurusan Kandungan sumber terbuka (CMS) yang kuat dan fleksibel yang membawa kandungan intuitif dan jelas

Cara Pasang DokuWiki pada Ubuntu 16.04 LTS

Cara Pasang DokuWiki pada Ubuntu 16.04 LTS

Menggunakan Sistem Berbeza? DokuWiki adalah program wiki sumber terbuka yang ditulis dalam PHP yang tidak memerlukan pangkalan data. Ia menyimpan data dalam fail teks. DokuWik

Siapkan Komposer Untuk Ketergantungan PHP Di CentOS 6

Siapkan Komposer Untuk Ketergantungan PHP Di CentOS 6

Pengenalan Komposer adalah pengurus pergantungan yang popular untuk PHP yang dapat mempermudah pemasangan dan kemas kini perpustakaan yang diperlukan untuk projek anda

Menyiapkan Chroot di Debian

Menyiapkan Chroot di Debian

Artikel ini akan mengajar anda cara menyediakan penjara chroot di Debian. Saya menganggap bahawa anda menggunakan Debian 7.x. Sekiranya anda menjalankan Debian 6 atau 8, ini mungkin berfungsi,

Cara Memasang PiVPN pada Debian

Cara Memasang PiVPN pada Debian

Pengenalan Cara mudah untuk menyediakan pelayan VPN di Debian adalah dengan PiVPN. PiVPN adalah pemasang dan pembungkus untuk OpenVPN. Ini membuat perintah mudah untuk anda

Cara Pasang Edisi Komuniti GitLab (CE) 11.x pada Debian 9

Cara Pasang Edisi Komuniti GitLab (CE) 11.x pada Debian 9

Menggunakan Sistem Berbeza? Sejak GitHub diambil alih oleh Microsoft, sebilangan besar pembangun telah merancang untuk memindahkan repositori kod mereka sendiri dari github.co

Pasang PBX dalam Flash 5 pada Debian 8

Pasang PBX dalam Flash 5 pada Debian 8

PBX In A Flash 5 (PIAF5) adalah sistem operasi berasaskan Debian 8 yang menjadikan Vultr VPS anda menjadi PBX lengkap. Ia mempunyai ciri-ciri berikut, dan banyak lagi.

Cara Pasang dan Konfigurasi CyberPanel pada Ubuntu 18.04 LTS

Cara Pasang dan Konfigurasi CyberPanel pada Ubuntu 18.04 LTS

Menggunakan Sistem Berbeza? Pengenalan CyberPanel adalah salah satu panel kawalan pertama di pasaran yang merupakan sumber terbuka dan menggunakan OpenLiteSpeed. Apa itu

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.

Janji Teknologi Yang Masih Tidak Ditepati

Janji Teknologi Yang Masih Tidak Ditepati

Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.

Fungsi Lapisan Seni Bina Rujukan Data Besar

Fungsi Lapisan Seni Bina Rujukan Data Besar

Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut