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

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