Tutorial Node.js #4 : Cara Menggunakan Modul HTTP

Modul HTTP adalah modul yang digunakan untuk bekerja dengan protokol HTTP, biasanya digunakan untuk membuat server. Pada tutorial sebelumnya kita sudah pernah membahas modul ini untuk membuat server web saja. Sekarang kita akan bahas lagi lebih dalam lagi, sehingga kita bisa menggunakannya untuk :

  • Membuat Server
  • Mengambil URL untuk routing
  • Mengambil Query String

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 dengan membuat file misal server.js yang isinya seperti ini :

var http = require('http');
var server = http.createServer(function (request, response) {
    response.end("Hello server!");
});

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

Lalu kita eksekusi dengan perintah :

node server.js

Maka hasilnya :

Respon default yang diberikan oleh server bentuknya dalam text/plain. Apa bila kita ingin mengubahnya, kita bisa lakukan di Response Header.

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.

Hasilnya :

Kita juga bisa mengubah jenis Content menjadi JSON, XML, PDF dan lain-lain.

Baca Juga  Tutorial Bootstrap #9 : Navs dan Navbar Bootstrap

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 kita temukan di sini.

Untuk uji coba sekarang 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 JSON biasanya digunakan dalam pembuatan REST API.

Mengambil URL untuk Routing

Jika kita ingin mengambil URI (Uniform Resource Identifier) untuk membuat URL (Uniform Resource Locator) 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');

Sekarang coba eksekusi dan akses melalui browser misal dengan alamat http://localhost:8000/coba, maka hasilnya :

Dengan begitu 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 :

Apabila kita membuka router yang belum didefinisikan, maka akan ditampilkan default yaitu 404: Halaman tidak ditemukan.

Cara Mengambil Query String di Nodejs

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

hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh

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

contoh :

?harga=1000

Cara mengambil nilai tersebut 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")

Sekarang kita coba eksekusi dan pada browser kita akses misalnya dengan alamat http://localhost:8000/cari?keyword=abc, maka hasilnya :

Baca Juga  Tutorial ReactJS #8 : REST API pada ReactJs

Perhatikan sintak pada baris :

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

Pada baris tersebut, kita melakukan parsing URL dengan modul url, kemudian mengambil properti query. Sehingga variabel q akan menjadi sebuah objek yang berisi seperti ini:

{ keyword: 'abc' }

Dengan demikian, kita bisa mengambil nilai ‘abc‘ melaui properti keyword.

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

Kita sudah belajar cara menggunakan modul http untuk membuat server, routing, dan mengambil query string dari request. Jika protokol yang digunakan adalah https, node.js juga menyediakan modul https. Cara penggunaannya sama seperti http.

Silahkan coba-coba eksperimen dengan modul yang lain, atau mulai belajar framework Express. Karena membuat aplikasi web dengan nodejs dari nol akan lebih rumit, dimana kita harus mempertimbangkan banyak hal dalam membuat route, seperti kalau method request-nya berbeda-beda, cara menghandle upload file, dan sebagainya.

Demikian tutorial cara menggunakan modul HTTP pada Node.js, selanjutnya kita akan mempelajari tentang cara menggunakan modul File System untuk baca tulis file.

Semoga bermanfaat, jika ada pertanyaan silahkan tuliskan di kolom komentar.

Related Post

1 Trackback / Pingback

  1. Tutorial Node.js #5 : Cara Menggunakan Modul File System untuk Baca Tulis File - agussuratna.net

Leave a Reply

Your email address will not be published.


*


error: Ga bisa dicopy