router.get('/', async () => {
return 'This is the homepage.'
// atau return objek → di-serialize jadi JSON
return { page: 'home' }
// bisa juga return Date → di-convert otomatis
return new Date()
})
response.send('This is the homepage')
response.send({ page: 'home' })
response.send(new Date())
// Catatan: kalau kita panggil response.send beberapa kali, hanya yang terakhir yang dipakai.
response.status(200).send({ page: 'home' })
response.status(201).send('') // misal: response kosong tapi status 201
response.safeStatus(200)
response.safeStatus(201) // nggak akan override kalau status sudah di-set
Set header
response.header(name, value) = set header (override).
response.safeHeader(name, value) = set header hanya kalau belum ada .
response.append(name, value) = tambahkan nilai header (misal untuk “Set-Cookie”).
response.removeHeader(name) = hapus header existing.
response.redirect().toPath('/articles')
response.redirect().toRoute('articles.show', { id: params.id })
response.redirect().back()
response.redirect().status(301).toRoute('articles.show', { id: params.id })
response.redirect().withQs({ page: 1, limit: 20 }).toRoute('articles.index')
response.redirect().withQs().back()
Streaming: pakai response.stream(stream) untuk pipe stream (misal file):
response.stream(imageStream, () => {
return ['Unable to serve file', 400]
})
// Catatan: response.stream tidak otomatis set content-type atau content-length kita harus set sendiri header-nya
Download File: lebih direkomendasikan pakai response.download(path) karena secara otomatis set content-type & content-length.
response.download(filePath, true, (error) => {
if (error.code === 'ENOENT') {
return ['File does not exists', 404]
}
return ['Cannot download file', 400]
})
response.attachment(filePath, 'nama-file.jpg')
response.abort({ message: 'Cannot edit post' }, 403)
// Ini melempar exception E_HTTP_REQUEST_ABORTED dan langsung berhenti, kemudian ditangani oleh exception handler Adonis.
response.onFinish(() => {
// misal logging atau cleanup
})
Kamu bisa ambil objek res asli dari Node.js (http.ServerResponse) lewat response.response