img-adonis
#fullstack

Response

  1. Pengiriman Response (Kirim Balik ke Client)
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.
  1. Status & Header Response
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
  1. Redirect.
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()
  1. Streaming dan Download File
  1. Aborting / Error dari Response
response.abort({ message: 'Cannot edit post' }, 403)

// Ini melempar exception E_HTTP_REQUEST_ABORTED dan langsung berhenti, kemudian ditangani oleh exception handler Adonis.
  1. Event Setelah Response Selesai
response.onFinish(() => {
  // misal logging atau cleanup
})
  1. Akses ke Node.js res Bawaan

Kamu bisa ambil objek res asli dari Node.js (http.ServerResponse) lewat response.response