Modul HTTP di Nodejs merupakan modul yang bekerja menggunakan protokol HTTP. Modul ini berfungsi untuk membuat webserver serta melakukan HTTP Request. Sebelumnya di pembahasan Belajar Nodejs 2#, kita sudah membahas modul HTTP untuk membuat server web. Sekarang kita akan bahas penggunaan Modul HTTP di nodejs lebih luas lagi, yaitu :
- Membuat Server
- Mengambil URL untuk routing
- Mengambil Query String
Mari kita bahas satu persatu…
Membuat Server modul HTTP build-in di Nodejs
Modul HTTP adalah modul build-in di Nodejs yang bisa dipakai secara langsung tanpa harus menginstalnya dari NPM. Jika ingin menggunakan modul HTTP di nodejs, kita harus mengimpornya terlebih dahulu dengan cara seperti ini:
var http = require('http');
Setelah itu kita bisa membuat program untuk server seperti ini:
Nama File: server.js
var http = require('http');
var server = http.createServer(function (request, response)
{
response.end("selamat datang di praktekotodidak.com");
});
server.listen(8000);
console.log("server running on http://localhost:8000");
Lalu kita eksekusi dengan perintah node server.js:
Maka hasilnya:
Respon default yang diberikan oleh server bentuknya adalah text/plain, Apabila kita ingin mengubahnya, kita bisa lakukan di Response Header.
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('Hai <b>selamat datang di praktekotodidak.com</b>!');
response.end();
}).listen(8000);
console.log("server running on http://localhost:8000");
Keterangan :
Pada contoh diatas, kita menggunakan method method dengan penjelasan sebagai berikut :
- writeHead() untuk mengubah jenis konten yang akan kita kirimkan ke client.
- write() untuk menulis body atau konten yang akan dikirim.
- 200 mengirimkan jenis konten HTML dengan kode respon 200, artinya responnya bagus.
- response.end() untuk mengakhiri respon.
Maka hasilnya akan seperti ini:
Kita juga bisa mengubah jenis konten menjadi JSON, XML, PDF, dll. Jenis-jenis konten yang lain, bisa kamu bisa dilihat DI SINI.
Contoh:
response.writeHead(200, {‘Content-Type’: ‘application/json’}); // untuk JSON
response.writeHead(200, {‘Content-Type’: ‘application/pdf’}); // untuk PDF
response.writeHead(200, {‘Content-Type’: ‘application/xml’}); // untuk XML
Mengambil URL untuk Routing
Jika kita ingin mengambil URL untuk membuat 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 :
Dari nilai ini, kita bisa membuat router, misalnya saat orang membuka rute ini maka jalankan fungsi ini.
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');
Apabila kita membuka router yang belum didefinisikan, maka akan ditampilkan default atau 404.
Mengambil Query String di Nodejs
Query string adalah teks yang ada setelah tanda tanya (?). Lihat contoh ini:
Cara mengambil nilai tersebut, kita dapat menggunakan modul url seperti contoh berikut.
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")
Keterangan :
variabel q adalah sebuah objek
url.parse(request.url, true).query; digunakan untuk melakukan parsing URL dengan modul url. setelah itu baru mengambil properti query.
Begitulah pembahasan tentang Modul HTTP . Baca juga artikel selanjutnya yaitu : Belajar Nodejs 6# Cara Menggunakan Modul File System di Nodejs