
Logika Berulang yang Menyebalkan
Misalkan kamu membuat Backend aplikasi rumah sakit. Kamu punya URL API untuk "Melihat Data Pasien", "Menghapus Pasien", dan "Menambah Pasien". Ketiga fungsi ini TENTU SAJA mensyaratkan satu hal mutlak: Hanya dokter yang sudah login yang boleh mengeksekusinya.
Apakah kamu akan menulis ulang kode pengecekan token ("Apakah user ini dokter?") di masing-masing dari ketiga URL tersebut? Jika URL-nya ada 50, kodenya akan sangat penuh dengan duplikasi. Di sinilah konsep Middleware digunakan.
Apa Itu Middleware?
Middleware (Perangkat Tengah) adalah sebuah fungsi yang diletakkan di tengah-tengah antara Permintaan Masuk (Request) dan Fungsi Inti (Controller/Response).
Bayangkan Middleware sebagai Satpam di lobi gedung perkantoran. Saat ada tamu masuk (Request) ingin menuju lantai 10 (Fungsi Inti), Satpam akan mencegatnya dulu di lobi:
- Satpam (Middleware) meminta ID Card tamu.
- Jika tamu tidak punya ID Card, Satpam akan langsung mengusirnya dan menolak permintaan (Memberi Response: 401 Unauthorized). Tamu tersebut gagal mencapai lantai 10.
- Jika tamu punya ID Card resmi, Satpam akan mengangguk dan mempersilakannya lewat menggunakan instruksi kode
next().
Contoh Kode Sederhana di Express.js
Dalam framework backend populer seperti Express (Node.js), middleware sangat mudah dibuat:
// Ini adalah Fungsi Satpam (Middleware)
function cekSatpam(req, res, next) {
const punyaKunci = req.headers.authorization;
if (!punyaKunci) {
// Usir langsung jika tidak bawa kunci!
return res.status(401).json({ pesan: "Kamu tidak punya akses!" });
}
// Jika aman, persilakan jalan ke fungsi selanjutnya
next();
}
// Menerapkan Satpam pada URL tertentu
app.delete('/data-pasien', cekSatpam, (req, res) => {
res.send("Data berhasil dihapus oleh dokter.");
});Penggunaan Middleware Selain untuk Keamanan
Middleware tidak melulu soal login. Ia bisa digunakan untuk banyak hal "pemrosesan awal", seperti:
- CORS: Middleware yang mengecek apakah website Frontend diizinkan mengambil data dari API ini.
- Logger: Middleware yang tugasnya hanya mencatat (membuat *history* file txt) setiap kali ada URL yang diakses (misal: User A mengakses halaman /home pada jam 12:00).
- File Upload: Mencegat *request* berisi file Foto, menyimpannya sementara di folder, lalu meneruskan teks url-nya ke fungsi inti.
Mau langsung pakai template?
Jelajahi template gratis dan premium di TampilKit untuk mempercepat proses development project kamu.
Browse Templates