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.

READ :  PM2: Rahasia Node.js Agar Aplikasi Selalu Jalan dan Stabil di Production

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.

Topic : Web | Tags : , ,

Penulis: Andreas

Andreas adalah penulis konten yang berfokus pada topik teknologi, bisnis online, dan digital. Ia aktif membuat artikel informatif yang membantu pembaca memahami isu-isu internet secara lebih jelas dan mudah dipahami.

Editor: Team SEOSatu

Team SEOSatu bertanggung jawab atas proses penyuntingan, verifikasi, dan optimasi SEO pada setiap artikel. Tim memastikan konten yang dipublikasikan akurat, relevan, dan sesuai standar kualitas SEO.