author Ahmad Muhardian

Belajar Nodejs #04: Memahami Cara Menggunakan Modul HTTP


Tutorial Nodejs untuk Pemula: Menggunakan Modul HTTP

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

Pada awal pengenalan Nodejs, kita sudah pernah membahas modul ini untuk membuat server web saja.

Sekarang kita akan bahas lagi lebih dalam lagi. Sehingga kita bisa menggunakannya untuk:

  1. Membuat Server
  2. Mengambil URL untuk routing
  3. Mengambil Query String

Mari kita mulai…

Membuat Server dengan modul HTTP

Modul HTTP adalah modul build-in di Nodejs yang bisa kita pakai langsung tanpa harus menginstalnya dari NPM.

Setiap kita ingin menggunakan modul HTTP, kita harus mengimpornya terlebih dahulu dengan cara seperti ini:

var http = require('http');

Setelah itu kita bisa membuat program untuk server seperti ini:

File: server.js

var http = require('http');

var server = http.createServer(function (request, response) {
    response.end("Hi, selamat datang di nodejs");
});

server.listen(8000);

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

Lalu kita eksekusi dengan perintah node server.js:

Eksekusi Server

Maka hasilnya:

Hasil webserver nodejs

Sangat mudah bukan.

Oya, respon default yang diberikan oleh server bentuknya dalam text/plain.

Apa bila kita ingin mengubahnya, kita bisa lakukan di Response Header.

Apa itu Response Header?

Lanjutkan baca ke bawah…

Modifikasi Response Body dan Header

Response Body dan Response Header adalah data payload yang akan kita kirimkan ke client.

Data ini kita bisa modifikasi dengan objek response.

Contoh:

var http = require('http');
http.createServer(function (request, response) {
    response.writeHead(200, {'Content-Type': 'text/html'});
    response.write('Hello <b>World</b>!');
    response.end();
}).listen(8000);

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

Pada contoh di atas, kita menggunakan method writeHead() untuk mengubah jenis konten yang akan kita kirimkan ke client. Lalu menggunakan method write() untuk menulis body atau konten yang akan dikirim.

Pada contoh di atas, kita akan mengirimkan jenis konten HTML dengan kode respon 200, artinya responnya bagus.

Terakhir memanggil method response.end() untuk mengakhiri respon.

Maka hasilnya akan seperti ini:

Eksekusi webserver nodejs

Kita juga bisa mengubah jenis koent menjadi JSON, XML, PDF, dll.

Contoh:

// untuk JSON
response.writeHead(200, {'Content-Type': 'application/json'});

// untuk PDF
response.writeHead(200, {'Content-Type': 'application/pdf'});

// untuk XML
response.writeHead(200, {'Content-Type': 'application/xml'});

Jenis-jenis konten yang lain, bisa kamu temukan di sini.

Mari kita coba mengirim respon dalam bentuk JSON.

Ubah kode tadi menjadi seperti ini:

var http = require('http');
http.createServer(function (request, response) {
    response.writeHead(200, {'Content-Type': 'application/json'});
    response.write('{"message": "Hello World!"}');
    response.end();
}).listen(8000);

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

Maka hasilnya:

Respon dengan kontent JSON

Respon JSON biasanya digunakan dalam pembuatan REST API.

Mengambil URL untuk Routing

Jika kita ingin mengambil URI untuk membuat URL routing, maka kita bisa mengambilnya dari objek request dengan properti url.

Contoh:

var http = require('http');

http.createServer(function (request, response){
    response.writeHead(200, {'Content-Type': 'text/html'});
    response.write('URL: ' + request.url);
    response.end();
}).listen(8000);

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

Hasilnya:

Cara Mengakses URL di Nodejs

Dari nilai ini, kita bisa membuat router, misalnya saat orang membuaka rute ini maka jalankan fungsi ini.

Contoh:

var http = require('http');

http.createServer(function (request, response){
    response.writeHead(200, {'Content-Type': 'text/html'});
    switch(request.url){
        case '/about':
            response.write("Ini adalah halaman about");
            break;
        case '/profile':
            response.write("Ini adalah halaman profile");
            break;
        case '/produk':
            response.write("ini adalah halaman produk");
            break;
        default: 
            response.write("404: Halaman tidak ditemukan");
    }
    response.end();
}).listen(8000);

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

Hasilnya:

Membuat router aplikasi di Nodejs

Apabila kita membuka router yang belum didefinisikan, maka akan ditampilkan default atau 404.

Membuat router aplikasi di Nodejs

Cara Mengambil Query String di Nodejs

Kita sudah tahu cara membuat router dari URL, sekarang bagaimana kalau di routernya ada query string seperti ini:

URL dengan query string

Teks yang ada setelah tanda tanya (?) disebut query string.

contoh:

?harga=1000

Bagiamana cara kita mengambil nilai tersebut?

Untuk melakukannya, kita bisa menggunakan modul url.

Contoh:

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

http.createServer(function (request, response) {
    response.writeHead(200, { 'Content-Type': 'text/html' });
    var q = url.parse(request.url, true).query;
    var txt = 'Kata kunci: ' + q.keyword;
    response.end(txt);
}).listen(8000);

console.log("Server berjalan di http://localhost:8000")

Hasilnya:

URL dengan query string

Perhatikan beris ini:

var q = url.parse(request.url, true).query;

Pada baris tersebut, kita melakukan parsing URL dengan modul url. Lalu mengambil properti query.

Sehingga variabel q akan menjadi sebuah objek yang berisi seperti ini:

{ keyword: 'Belajar nodejs' }

Dengan demikian, kita bisa mengambil nilai 'Belajar nodejs' melaui properti keyword.

console.log(q.keyword); // 'Belajar nodejs'

Apa Selanjutnya?

Kita sudah belajar cara menggunakan modul http untuk membuat server, routing, dan mengambil query string dari request.

Nah, jika protokol yang digunakan adalah https. Nodejs juga menyediakan modul https. Cara penggunaannya sama seperti http.

Selanjutnya, coba-coba eksperimen dengan modul yang lain. Atau mulai belajar framework Express.

Karena membuat aplikasi web dengan nodejs dari nol akan lebih rumit.

Soalnya,kita harus mempertimbangkan banyak hal dalam membuat route.

Seperti:

Mungkin hal ini akan kita bahas di kesempatan berikutnya…

Selamat belajar.

Baca Juga ini

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: Memahami Fungsi di Javascript dan Contoh Programnya

Belajar Javascript: Memahami Fungsi di Javascript dan Contoh Programnya

Fungsi merupakan hal yang wajib dipahami di dalam Javascript, karena kedepan kita akan banyak bekerja dengan fungsi baik dalam membuat objek, manipulasi HTML, melakukan ajax dan sebagainya.

Cara Mengakses Webcam dari HTML dan Mengambil Gambar

Cara Mengakses Webcam dari HTML dan Mengambil Gambar

Tutorial Cara Mengakses Webcam dari HTML dan Mengambil Gambar atau Foto.

Mengenal HTML5 Vibration API untuk Membuat Getaran di HP

Mengenal HTML5 Vibration API untuk Membuat Getaran di HP

Artikel kali ini terinspirasi dari pembicaraan teman-teman di grup Pojok Programmer tentang link download palsu yang mengarahkan ke link iklan. Sebagian halaman web menggunakan getaran untuk mengambil perhatian dari pengunjungnya, terutama halaman web yang penuh dengan iklan. Membaca komentar-komentar mereka membuat saya teratrik ingin tahu cara membuat getaran di web. Langsunga saja saya menuju ke Google dan memasukan kata kunci “js vibrate phone” dan hasilnya ternya menggunakan HTML5 Vibration API.