UI vs. UX: What’s the difference?

Apa Itu Middleware di Express.js?

Kalau kamu baru belajar Node.js dan Express.js, pasti sering mendengar istilah middleware. Tapi, apa sih sebenarnya middleware itu? Kenapa penting dalam aplikasi web?

Tenang, di artikel ini kita akan bahas apa itu middleware, cara kerjanya, jenis-jenisnya, sampai ke contoh penggunaannya secara langkah demi langkah dan mudah dimengerti.

Pengertian Middleware

Secara sederhana, middleware adalah fungsi di Express.js yang dijalankan di antara request (permintaan dari client) dan response (jawaban dari server).

Middleware bisa digunakan untuk:

  • Mengecek autentikasi
  • Logging (mencatat request)
  • Validasi data
  • Menangani error
  • Dan banyak lagi

Cara Kerja Middleware

Middleware menerima tiga parameter utama:

(req, res, next)
  • req → objek permintaan (request)
  • res → objek respons (response)
  • next() → fungsi untuk meneruskan ke middleware berikutnya

 

Contoh sederhana:

function logger(req, res, next) {
  console.log(`${req.method} ${req.url}`);
  next(); // penting! supaya request lanjut ke route berikutnya
}

 

Menambahkan Middleware ke Aplikasi

Untuk menggunakan middleware, cukup panggil:

const express = require('express');
const app = express();

app.use(logger); // logger adalah middleware

Fungsi app.use() akan menjalankan middleware tersebut untuk semua request yang masuk.

 

Jenis-Jenis Middleware di Express.js

1. Application-level Middleware

Dijalankan pada level aplikasi, untuk semua route:

app.use((req, res, next) => {
  console.log('Request diterima!');
  next();
});

2. Router-level Middleware

Dijalankan hanya pada router tertentu:

const router = express.Router();

router.use((req, res, next) => {
  console.log('Router middleware');
  next();
});

3. Built-in Middleware

Express sudah menyediakan middleware bawaan seperti:

app.use(express.json()); // parsing body JSON
app.use(express.urlencoded({ extended: true })); // parsing form

4. Third-party Middleware

Middleware dari library luar, seperti:

npm install morgan
const morgan = require('morgan');
app.use(morgan('dev')); // untuk logging request

5. Error-handling Middleware

Menangani error. Memiliki 4 parameter:

app.use((err, req, res, next) => {
  console.error(err.stack);
  res.status(500).send('Terjadi kesalahan!');
});

 

Urutan Eksekusi Middleware

Express akan mengeksekusi middleware sesuai urutan penulisan. Maka, penting untuk menaruh middleware yang penting di awal, seperti validasi atau autentikasi.

Contoh:

app.use(authMiddleware); // harus login
app.use(logger);         // mencatat log

app.get('/dashboard', (req, res) => {
  res.send('Halaman Dashboard');
});

 

Contoh Middleware: Cek Login

function authMiddleware(req, res, next) {
  const isLoggedIn = true; // contoh (harusnya ambil dari token/session)
  if (!isLoggedIn) {
    return res.status(401).send('Harus login dulu!');
  }
  next();
}

app.get('/profile', authMiddleware, (req, res) => {
  res.send('Ini halaman profile');
});

 

Manfaat Middleware

  •  Kode lebih modular dan rapi
  • Bisa digunakan ulang di berbagai route
  • Mudah menangani fitur umum seperti validasi, log, dan keamanan
  • Sangat fleksibel dan scalable

 

Hal yang Perlu Diperhatikan

  • Jangan lupa memanggil next() di akhir middleware, kalau tidak request akan "macet".
  • Middleware dieksekusi berurutan, jadi urutan penulisan sangat penting.
  • Gunakan middleware error secara terpisah dan paling akhir.

Kesimpulan

Middleware adalah jantung dari Express.js. Dengan middleware, kamu bisa mengontrol bagaimana request diproses, memeriksa data, memvalidasi user, sampai menangani error — semua dilakukan dengan cara yang bersih dan terstruktur.

Kalau kamu sedang belajar Express.js, memahami middleware adalah langkah penting agar kamu bisa membangun aplikasi web yang lebih kompleks dan aman.