Modul HTTP

Modul HTTP Bawaan di Node.js

Node.js memiliki modul bawaan yang disebut HTTP, yang memungkinkan Node.js mentransfer data melalui Hyper Text Transfer Protocol (HTTP).

Untuk memasukkan modul HTTP, gunakan metode require():

var http = require('http');

Node.js sebagai Server Web

Modul HTTP dapat membuat server HTTP yang mendengarkan port server dan memberikan respons kembali ke klien.

Gunakan metode createServer() untuk membuat server HTTP:

Contoh

var http = require('http');

//create a server object:
http.createServer(function (req, res) {
  res.write('Hello World!'); //write a response to the client
  res.end(); //end the response
}).listen(8080); //the server object listens on port 8080

Fungsi yang diteruskan ke metode http.createServer() , akan dijalankan ketika seseorang mencoba mengakses komputer pada port 8080.

Simpan kode di atas dalam file bernama “demo_http.js”, dan mulai file:

Mulai demo_http.js:

C:\Users\Your Name>node demo_http.js

Jika kamu mengikuti langkah yang sama di komputer kamu, kamu akan melihat hasil yang sama seperti contoh: http: // localhost: 8080

Tambahkan Header HTTP

Jika respons dari server HTTP seharusnya ditampilkan sebagai HTML, kamu harus menyertakan header HTTP dengan tipe konten yang benar:

Contoh

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/html'});
  res.write('Hello World!');
  res.end();
}).listen(8080);

Argumen pertama dari metode res.writeHead() ini adalah kode status, 200 berarti semuanya OK, argumen kedua adalah objek yang berisi header respons.

Membaca String Query

Fungsi yang diteruskan ke http.createServer() memiliki argumen req yang mewakili permintaan dari klien, sebagai objek (objek http.IncomingMessage).

Objek ini memiliki properti bernama “url” yang menampung bagian dari url yang muncul setelah nama domain:

demo_http_url.js

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/html'});
  res.write(req.url);
  res.end();
}).listen(8080);

Simpan kode di atas dalam file bernama “demo_http_url.js” dan mulai file:

Mulai demo_http_url.js:

C:\Users\Your Name>node demo_http_url.js

Jika kamu telah mengikuti langkah yang sama di komputer kamu, maka kamu akan melihat dua hasil berbeda saat membuka dua alamat ini:

http://localhost: 8080/summer

Akan menghasilkan hasil ini:

/summer

http://localhost:8080/winter

Akan menghasilkan hasil ini:

/winter

Memisahkan String Query

Ada modul bawaan untuk dengan mudah membagi string query menjadi bagian yang dapat dibaca, seperti modul URL.

Contoh

Pisahkan string query menjadi bagian yang dapat dibaca:

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

http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/html'});
  var q = url.parse(req.url, true).query;
  var txt = q.year + " " + q.month;
  res.end(txt);
}).listen(8080);

Simpan kode di atas dalam file bernama “demo_querystring.js” dan mulai file:

Mulai demo_querystring.js:

C:\Users\Your Name>node demo_querystring.js

Alamat:

http://localhost:8080/?year=2017&month=July

Akan menghasilkan hasil ini:

2017 July