BAB 10 – Routing pada Express.js: Mengatur URL dan Request dengan Rapi

BAB 10 – Routing pada Express.js: Mengatur URL dan Request dengan Rapi

Routing adalah cara Express.js menentukan respon apa yang dikirim berdasarkan:

  • URL yang diakses
  • HTTP method (GET, POST, PUT, DELETE)

Tanpa routing yang jelas, aplikasi backend akan sulit dikembangkan dan rawan membingungkan. Routing yang rapi membuat alur aplikasi lebih mudah dipahami dan dipelihara.


Struktur Dasar Routing Express.js

Routing dasar menggunakan pola:

app.METHOD(PATH, HANDLER)

Contoh sederhana:

app.get("/", (req, res) => {
  res.send("Halaman Utama");
});

Di sini:

  • GET adalah method
  • / adalah path
  • handler adalah function yang dijalankan

Routing Berdasarkan HTTP Method

Express membedakan routing berdasarkan HTTP method.

app.get("/users", (req, res) => {
  res.send("Menampilkan data user");
});

app.post("/users", (req, res) => {
  res.send("Menambah user");
});

app.put("/users", (req, res) => {
  res.send("Mengubah user");
});

app.delete("/users", (req, res) => {
  res.send("Menghapus user");
});

Pendekatan ini umum digunakan dalam REST API.


Routing dengan Parameter URL

Routing bisa menerima parameter dinamis.

app.get("/users/:id", (req, res) => {
  const userId = req.params.id;
  res.send(`Detail user dengan ID ${userId}`);
});

Parameter ini sangat berguna untuk:

  • detail data
  • update data
  • delete data

Routing dengan Query Parameter

Query parameter biasanya digunakan untuk filter atau pencarian.

app.get("/search", (req, res) => {
  const keyword = req.query.q;
  res.send(`Hasil pencarian untuk: ${keyword}`);
});

URL contoh:

/search?q=nodejs

Mengelompokkan Routing dengan Express Router

Agar kode lebih rapi, Express menyediakan Router.

Membuat Router

// routes/userRoutes.js
import express from "express";

const router = express.Router();

router.get("/", (req, res) => {
  res.send("Daftar user");
});

router.get("/:id", (req, res) => {
  res.send(`Detail user ${req.params.id}`);
});

export default router;

Menggunakan Router

// index.js
import express from "express";
import userRoutes from "./routes/userRoutes.js";

const app = express();

app.use("/users", userRoutes);

app.listen(3000);

Pendekatan ini sangat membantu saat aplikasi semakin besar.


Menangani Request Body pada Routing

Untuk menangani data dari client, gunakan middleware JSON.

app.use(express.json());

app.post("/login", (req, res) => {
  const { username, password } = req.body;
  res.json({
    message: "Login berhasil",
    username
  });
});

Middleware memastikan data request bisa dibaca dengan benar.


Routing dengan Response JSON

Express memudahkan pengiriman response JSON.

app.get("/api/status", (req, res) => {
  res.status(200).json({
    status: "ok"
  });
});

Pendekatan ini sangat umum untuk API backend.


Handling Route Not Found (404)

Route yang tidak ditemukan sebaiknya ditangani secara khusus.

app.use((req, res) => {
  res.status(404).json({
    message: "Route tidak ditemukan"
  });
});

Ini membantu client mendapatkan respon yang jelas.


Contoh Praktik Routing Sederhana

import express from "express";

const app = express();
app.use(express.json());

app.get("/", (req, res) => {
  res.send("Home");
});

app.get("/products", (req, res) => {
  res.json(["Laptop", "Keyboard", "Mouse"]);
});

app.post("/products", (req, res) => {
  const product = req.body;
  res.json({
    message: "Produk ditambahkan",
    product
  });
});

app.listen(3000);

Contoh ini mencakup routing dasar yang umum digunakan.


Kesalahan Umum dalam Routing Express.js

Beberapa kesalahan yang sering terjadi:

  • menaruh semua route di satu file
  • tidak menggunakan Router
  • tidak menangani route 404

Routing yang rapi akan sangat membantu saat aplikasi berkembang.


Kesimpulan

Routing adalah inti dari aplikasi Express.js. Dengan routing yang baik, kita bisa:

  • mengatur URL dengan jelas
  • memisahkan logika aplikasi
  • membangun API yang mudah dikembangkan

Bab ini menjadi fondasi sebelum masuk ke middleware lanjutan dan autentikasi.