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.
Contents
- 1 Struktur Dasar Routing Express.js
- 2 Routing Berdasarkan HTTP Method
- 3 Routing dengan Parameter URL
- 4 Routing dengan Query Parameter
- 5 Mengelompokkan Routing dengan Express Router
- 6 Menangani Request Body pada Routing
- 7 Routing dengan Response JSON
- 8 Handling Route Not Found (404)
- 9 Contoh Praktik Routing Sederhana
- 10 Kesalahan Umum dalam Routing Express.js
- 11 Kesimpulan
- 12 Related Posts
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:
GETadalah 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.