Middleware adalah kode yang dijalankan sebelum (atau sesudah) request masuk ke controller.
cara membuat middleware:
node ace make:middleware Auth
Dipakai buat:
Server middleware
import server from '@adonisjs/core/services/server'
server.use([() => import('...')])
Router middleware (global middleware)
import router from '@adonisjs/core/services/router'
router.use([() => import('...')])
Named middleware
import router from '@adonisjs/core/services/router'
router.named({
auth: () => import('#middleware/auth_middleware'),
})
Route.get('/xxx', '…').middleware('auth')
import { HttpContext } from '@adonisjs/core/http'
import { NextFn } from '@adonisjs/core/types/http'
export default class UserLocationMiddleware {
async handle(ctx: HttpContext, next: NextFn) {
// …
await next()
// …
}
}
Dalam method handle, kita bisa:
import { middleware } from '#start/kernel'
router.get('posts', () => {}).use(middleware.userLocation())
// atau
router.get('payments', () => {}).use([middleware.auth(), middleware.userLocation()])
router
.group(() => {
router.get('posts', () => {})
router.get('users', () => {})
})
.use(middleware.userLocation())