Middleware
Fungsi yang dieksekusi di tengah request dan response untuk tugas umum.
Middleware adalah fungsi yang dieksekusi di antara request masuk dan response keluar. Middleware bisa memodifikasi request/response, menghentikan request (misalnya kalau tidak terautentikasi), atau melakukan tugas logging/monitoring. Urutan middleware penting — dieksekusi secara sequential. Contoh middleware: Authentication (verifikasi token), Authorization (cek permission), CORS (tambah headers), Body Parser (parse JSON/form data), Rate Limiter (batasi request per IP), Logger (catat setiap request), Error Handler (tangani error terpusat). Di Hono: app.use('', middleware) untuk global, app.use(‘/admin/’, middleware) untuk route spesifik.
Contoh Kode
// Middleware dengan Hono
// 1. Logging middleware
app.use('*', async (c, next) => {
const start = Date.now();
await next(); // Lanjut ke handler berikutnya
const duration = Date.now() - start;
console.log(`${c.req.method} ${c.req.path} - ${duration}ms`);
});
// 2. Auth middleware
app.use('/api/*', async (c, next) => {
const token = c.req.header('Authorization')?.replace('Bearer ', '');
if (!token) return c.json({ error: 'Unauthorized' }, 401);
const payload = await verify(token, secret);
c.set('userId', payload.sub);
await next();
});