Controller & Penanganan Request
Membuat controller aksi, membaca parameter HTTP, dan menghasilkan response.
Oktober 2026 / v1.1.0Struktur Controller
Controller bertugas menerima permintaan HTTP dari pengguna, memproses data bisnis bersama model, dan mengembalikan hasil ke peramban berupa tampilan HTML atau data JSON.
File controller ditempatkan di jeroan/Pangatur/ dengan ekstensi .ngpk. Anda dapat membuat controller baru dengan perintah dialek Ngapak:
# Dialek Ngapak (Rekomendasi)
ngapakin gawe:pangatur ProdukController
# Atau menggunakan alias standar
ngapakin make:controller ProdukController
Contoh Lengkap Controller
# jeroan/Pangatur/ProdukController.ngpk
gawe index(req, res)
# Mengambil seluruh data produk dari database
daftar_produk = db.tabel("produk").pilih().jupuk()
# Mengirimkan data ke view template
konteks = ["title": "Katalog Produk", "produk": daftar_produk]
balekna res.view("produk.index", konteks)
rampung
gawe simpan(req, res)
# Membaca data body request formulir
nama = req.body["nama"]
harga = req.body["harga"]
# Simpan ke database
db.tabel("produk").lebokna(["nama": nama, "harga": harga])
# Redirect ke halaman utama
balekna res.redirect("/produk")
rampung
gawe api_list(req, res)
# Mengembalikan response JSON untuk REST API
data = db.tabel("produk").pilih().jupuk()
balekna res.json(["status": "sukses", "data": data])
rampung
Objek Request (req)
Setiap aksi controller menerima parameter req yang menyediakan akses ke seluruh data permintaan:
req.params: Dictionary parameter URL dinamis (contoh:req.params["slug"]).req.query: Parameter query string (contoh:req.query["cari"]pada/produk?cari=kaos).req.body: Data payload formulir (POST/PUT) atau parsed JSON body.req.headers: Header HTTP dari klien (contoh:req.headers["authorization"]).
Objek Response (res)
res.view(view_name, context): Merender template tampilan disawangan/.res.json(data, status=200): Mengirim data terformat JSON.res.redirect(url, status=302): Mengalihkan pengguna ke URL lain.res.cookie(nama, nilai): Mengatur HTTP cookie klien.