Request
- Query String & Route Params
- request.qs() = Mengembalikan semua query string yang diparse sebagai object.
// kalau URL: /posts?sort_by=id&direction=desc
request.qs() // → { sort_by: 'id', direction: 'desc' }
- request.params() = Mengembalikan object dari route params.
// route: /posts/:slug/comments/:id
// URL: /posts/hello-world/comments/2
request.params() // → { slug: 'hello-world', id: '2' }
- request.param(name) = Mengambil satu param berdasarkan nama.
const slug = request.param('slug')
const commentId = request.param('id')
- Body Request
- request.body() = Mengembalikan body request yang sudah diparse (JSON, form, dsb.) sebagai object.
const body = request.body()
- request.all() = Menggabungkan (merge) data body + query string jadi satu object.
const data = request.all()
-
Cherry-picking nilai:
- request.input(key, defaultValue?) = ambil satu nilai spesifik (dari body atau query)
const email = request.input('email')
const comment = request.input('body', 'default comment')
- request.only([…keys]) = ambil beberapa field yang diinginkan dari request.
const creds = request.only(['email', 'password'])
- request.except([…keys]) = ambil semua field kecuali field tertentu.
const userData = request.except(['password_confirmation'])
- URL Request
- request.url(includeQs = false) = Mengembalikan URL request relatif terhadap hostname, tanpa query string kecuali includeQs = true.
request.url() // misal → '/users'
request.url(true) // misal → '/users?page=1&limit=20'
- request.completeUrl(includeQs = false) = Sama seperti url(), tetapi mengembalikan complete URL (termasuk domain hostname).
request.completeUrl() // misal → 'http://example.com/users'
request.completeUrl(true) // misal → 'http://example.com/users?page=1'
- Header Request
- request.headers() = Mengembalikan semua header request sebagai object.
const allHeaders = request.headers()
- request.header(name, defaultValue?) = Mengambil satu header. Nama header tidak case-sensitive.
const id = request.header('x-request-id')
const something = request.header('X-Custom-Header', 'default')