Study
Express.js

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'.

Editor Latihan

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.