author Ahmad Muhardian

Belajar Nodejs #06: Menggunakan Modul URL untuk Membuat Webserver Statis


Belajar Parsing URL di Nodejs

Dalam pengembangan web, kita tidak akan bisa terlepas dari URL.

URL merupakan sebuah teks yang menyatakan alamat sebuah web atau halaman web.

Berikut ini contoh URL:

Contoh URL

Sebuah URL terdiri dari protokol, domain, path name, parameter, dll.

Bagaimana cara kita mengurai (parsing) URL ini di dalam program?

Mari kita bahas…

Parsing URL di Nodejs

Nodejs memiliki modul bernama url yang fungsinya untuk mengurai URL menjadi bagian-bagian yang bisa kita gunakan dalam program.

Modul url sudah ada di dalam Nodejs, jadi kita tidak perlu menginstalnya melalui NPM (Node Package Manager).

Untuk dapat menggunakan modul url, kita harus mengimpornya dengan fungsi require().

var url = require('url');

Mari kita coba…

Buatlah sebah file javascript bernama parse_url.js dan isi dengan kode berikut ini:

var url = require('url');
var adr = 'https://www.petanikode.com/search.php?year=2018&month=february';
var q = url.parse(adr, true);

//hasil parse URL
console.log("protocol: " + q.protocol);
console.log("hostname: " + q.host);
console.log("pathname: " + q.pathname);
console.log("params: " + q.search);

var qdata = q.query; // ambil query string sebagai objek
console.log(qdata);

Setelah itu coba eksekusi:

Hasil eksekusi program parse URL

Pada program di atas, kita menggunakan fungsi url.parse() untuk mengurai URL.

Fungsi url.parse() memiliki dua paramter:

  1. String URL yang akan di-parse;
  2. Boolean yang untuk parse parameter/query string. Parameter ini bersifat opsional atau boleh tidak diisi. Jika diisi true, maka parameter/query string akan di-parse menjadi objek. 1

Lalu, setelah di-parse…

…kita tampilkan hasil parse-nya:

//hasil parse URL
console.log("protocol: " + q.protocol);
console.log("hostname: " + q.host);
console.log("pathname: " + q.pathname);
console.log("params: " + q.search);

Membuat Webserver Statis

Setelah mengetahui fungsi dan manfaat dari modul url, sekarang kita coba membuat sebuah webserver statis.

Webserver ini akan melayani permintaan (HTTP Request), lalu meresponnya dengan file statis.

Kita akan menggunakan modul File System untuk membaca file statis.

Mari kita buat…

Silahkan buat file baru bernama static_server.js, lalu isi dengan kode berikut:

var http = require('http');
var url = require('url');
var fs = require('fs');

http.createServer(function (req, res) {
    var q = url.parse(req.url, true);
    var filename = "." + q.pathname;

    // baca file
    fs.readFile(filename, function(err, data) {
        if (err) { // kirim balasan error
            res.writeHead(404, {'Content-Type': 'text/html'});
            return res.end("404 Not Found");
        } 
        // kirim balasan dengan isi file statis
        res.writeHead(200, {'Content-Type': 'text/html'});
        res.write(data);
        return res.end();
    });
  
}).listen(8000);

console.log('server is running on http://localhost:8000');

Berikutnya buat tiga file: index.html, about.html, dan contact.html.

Isi file 📄 index.html

<!DOCTYPE html>
<html>
<head>
    <title>Tutorial Nodejs</title>
</head>
<body>
    <h1>Selamat datang di Tutorial Nodejs Petanikode</h1>
    <p>Hello, kita sedang belajar tentang modul URL</p>
</body>
</html>

Isi file 📄 about.html

<!DOCTYPE html>
<html>
<head>
    <title>Tentang Petanikode</title>
</head>
<body>
    <h1>Tentang Petanikode</h1>
    <p>Petanikode merupakan sebuah blog yang membahas tentang pemrograman menggunakan Linux</p>
</body>
</html>

Isi file 📄 contact.html

<!DOCTYPE html>
<html>
<head>
    <title>Contact Petanikode</title>
</head>
<body>
    <h1>Hubungi Kami</h1>
    <p>Anda dapat menghubungi kami melalui email: <code>[email protected]</code></p>
</body>
</html>

Hasilnya:

Program webserver statis dengan Nodejs

Untuk percobaan berikutnya:

Coba buat file HTML baru lagi dan coba buka dari web.

Apa Selanjutnya?

Pada tutorial ini, kita sudah belajar tentang modul url pada Nodejs. Modul ini akan banyak kita gunakan dalam pengembangan web.

Misalnya untuk mengambil data daru query string atau parameter.

Selanjutnya silahkan pelajari tentang:

Baca Juga ini

Belajar Nodejs #05: Cara Menggunakan Modul File System untuk Baca Tulis File

Belajar Nodejs #05: Cara Menggunakan Modul File System untuk Baca Tulis File

Pada tutorial ini, kita akan belajar cara menggunakan modul File System. Modul ini sering digunakan dalam membuat aplikasi Nodejs. Fungsi modul ini adalah....

Belajar Nodejs #04: Memahami Cara Menggunakan Modul HTTP

Belajar Nodejs #04: Memahami Cara Menggunakan Modul HTTP

Modul HTTP adalah modul yang digunakan untuk bekerja dengan protokol HTTP, biasanya digunakan untuk membuat server."

Belajar Nodejs #03: Cara Menggunakan Modul dalam Aplikasi Nodejs

Belajar Nodejs #03: Cara Menggunakan Modul dalam Aplikasi Nodejs

Saat mengembangkan aplikasi dengan Nodejs, kita tidak akan bisa lepas dari penggunaan Modul. Pada artikel ini akan dibahas cara penggunaan Modul di Nodejs

Belajar Nodejs #02: Mengenal NPM untuk Manajemen Project Javascript

Belajar Nodejs #02: Mengenal NPM untuk Manajemen Project Javascript

Salah satu tool yang sering digunakan dalam Nodejs adalah NPM. Apa peran dan fungsi NPM dalam project Nodejs?

Belajar Nodejs #01: Pengenalan Dasar Nodejs (untuk Pemula)

Belajar Nodejs #01: Pengenalan Dasar Nodejs (untuk Pemula)

Tutorial Nodejs dari Nol untuk pemula. Dimulai dari cara install Nodejs di Linux hingga Membuat webserver dan aplikasi lainnya

Belajar Javascript #7: Memahami 6 Bentuk Percabangan pada Javascript

Belajar Javascript #7: Memahami 6 Bentuk Percabangan pada Javascript

Blok percabangan adalah blok kode yang wajib dipelajari setiap pemula, karena akan banyak digunakan dalam pembuatan program. Percabangan akan mampu membuat program berpikir dan menentukan tindakan sesuai dengan logika/kondisi yang kita berikan.