Bab 7 dari 7 · 25 menit

Pengujian, Optimasi, dan Deployment Produksi

Menjaga kualitas kode sebelum dilepas ke publik membutuhkan rangkaian pengujian terstruktur. Node.js modern menyediakan test runner bawaan melalui modul node:test sejak versi 18, namun kerangka kerja seperti Jest dan kombinasi Supertest tetap menjadi pilihan populer karena kelengkapan ekosistem mocking dan pengujian endpoint HTTP.

Pengujian Aplikasi Node.js

Pengujian piramida mencakup tiga lapisan:

  1. Unit Test: Menguji fungsi logika tunggal secara terisolasi tanpa dependensi eksternal.
  2. Integration Test: Menguji kerja sama antarkomponen, seperti integrasi controller dengan query database.
  3. End-to-End Test: Menguji keseluruhan alur skenario pengguna dari awal hingga akhir.
// Pengujian fungsi unit dengan Jest
const { tambah } = require('./mtk');

describe('fungsi tambah', () => {
  test('menjumlahkan dua bilangan bulat', () => {
    expect(tambah(2, 3)).toBe(5);
  });
});

Di tingkat performa, satu proses Node.js hanya berjalan pada satu thread inti CPU. Untuk mengoptimalkan mesin server multi-core, modul bawaan cluster atau process manager seperti PM2 dapat menjalankan beberapa instance proses aplikasi secara paralel untuk membagi beban kerja jaringan.

Deployment ke Produksi

PM2 menyediakan fitur pemantauan kesehatan aplikasi, log terpusat, dan otomatisasi restart saat aplikasi mengalami kegagalan tak tertangani. Dalam paradigma kontainerisasi modern, aplikasi dikemas menggunakan Docker. File Dockerfile bertingkat meminimalkan ukuran image menggunakan basis Alpine Linux dan mengisolasi lingkungan dependensi aplikasi.

Roadmap Belajar Node.js

Daftar periksa sebelum rilis produksi:

  • Pastikan variabel NODE_ENV diatur ke nilai production.
  • Pasang middleware keamanan helmet dan pembatas laju permintaan express-rate-limit.
  • Gunakan reverse proxy seperti Nginx untuk terminasi TLS/HTTPS.
  • Jalankan audit dependensi berkala lewat npm audit guna menambal celah keamanan pustaka pihak ketiga.

Cek pemahaman

  1. 1. Perintah process manager PM2 yang digunakan untuk menjalankan aplikasi server dalam mode cluster multi-core secara otomatis adalah...

  2. 2. Test runner bawaan node:test memerlukan instalasi paket tambahan dari registry NPM sebelum dapat dijalankan.

  3. 3. Variabel lingkungan mendasar yang wajib disetel ke nilai 'production' saat merilis aplikasi Express agar mengaktifkan optimasi performa bawaan adalah...