Halo teman-teman semuanya, pada artikel sebelumnya, kita sudah belajar bagaimana cara membuat web server sederhana menggunakan HTTP module bawaan Node.js.
Kali ini, kita akan membahas bagaimana cara membuat routing secara manual, tanpa bantuan framework apa pun.
Routing adalah proses menentukan response berdasarkan URL yang diminta oleh client. Misalnya:
- Saat mengakses
/
, kita ingin menampilkan halaman beranda.
- Saat mengakses
/about
, kita ingin menampilkan halaman tentang.
Membuat Routing Manual
Kita akan menggunakan req.url
untuk mengetahui URL yang diakses, lalu memberikan response berdasarkan nilai tersebut. Berikut contoh kodenya:
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
if (req.url === '/') {
res.end('Ini adalah halaman beranda');
} else if (req.url === '/about') {
res.end('Ini adalah halaman tentang kami');
} else if (req.url === '/contact') {
res.end('Ini adalah halaman kontak');
} else {
res.writeHead(404);
res.end('Halaman tidak ditemukan');
}
});
server.listen(3000, () => {
console.log('Server berjalan di http://localhost:3000');
});
Penjelasan:
req.url
digunakan untuk membaca URL dari request yang masuk.
- Kita menggunakan
if-else
untuk menentukan response berdasarkan URL tersebut.
- Jika URL tidak sesuai dengan yang diatur, kita kembalikan status 404 dan pesan "Halaman tidak ditemukan".
Menambahkan HTML ke Setiap Halaman
Jika ingin memberikan tampilan HTML, kita cukup mengganti Content-Type
dan menuliskan HTML di dalam response:
if (req.url === '/') {
res.writeHead(200, { 'Content-Type': 'text/html' });
res.end('<h1>Selamat datang di halaman beranda</h1>');
}
Kesimpulan
Routing manual memberikan kita kendali penuh untuk menangani berbagai URL. Walaupun cocok untuk belajar, cara ini akan menjadi sulit dikelola saat jumlah route semakin banyak.
Oleh karena itu, nantinya kita akan menggunakan framework seperti Express untuk memudahkan pengelolaan routing.
Terima Kasih