Router: Modularisasi Route
Penjelasan
express.Router() membuat objek router mini yang bisa didaftarkan route-nya sendiri di file TERPISAH, lalu di-"mount" ke aplikasi utama lewat app.use('/prefix', router) — mencegah semua route menumpuk di satu file index.js yang panjang, mirip konsep Route::resource() modular di Laravel.
Contoh Konsep
// routes/produk.js
const express = require('express');
const router = express.Router();
router.get('/', (req, res) => {
res.send('Daftar semua produk');
});
router.get('/:id', (req, res) => {
res.send(`Detail produk ${req.params.id}`);
});
module.exports = router;
// index.js
const produkRouter = require('./routes/produk');
app.use('/produk', produkRouter); // path akhirnya: /produk dan /produk/:id
Praktikum
Buat file routes/artikel.js dengan express.Router() berisi route GET / (daftar artikel) dan GET /:id (detail artikel). Tulis juga contoh cara mount router itu di index.js dengan prefix '/artikel'.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Path yang ditulis DI DALAM Router bersifat RELATIF terhadap prefix mount-nya — kalau router.get('/:id', ...) di-mount dengan app.use('/produk', router), path lengkapnya jadi /produk/:id, BUKAN cuma /:id, jadi jangan tulis ulang '/produk' di dalam file router-nya.