MEMBUAT HTTP SERVER NODEJS

Membuat HTTP Server



Fokus utama Node.js adalah pengembangan back-end karena ia dapat digunakan untuk membuat aplikasi back-end, termasuk web server alias komputer yang dapat menangani dan menanggapi permintaan client. Node.js juga menyediakan core modules http untuk membangun web server. 

const http = require('http'); 


HTTP module memiliki banyak member, termasuk objek, properti, atau method yang digunakan untuk melakukan hal-hal yang berkaitan dengan protokol HTTP. Method http.createServer() adalah salah satu member yang paling penting untuk kita ketahui.

Seperti namanya, method ini berfungsi untuk membuat HTTP server, yang merupakan instance dari http.server, dengan menerima parameter custom callback yang digunakan sebagai request listener. Logika yang digunakan untuk menangani dan menanggapi request dituliskan di dalam request listener.

const http = require('http');
 
/**
 * Logika untuk menangani dan menanggapi request dituliskan pada fungsi ini
 * 
 * @param request: objek yang berisikan informasi terkait permintaan
 * @param response: objek yang digunakan untuk menanggapi permintaan
 */
const requestListener = (request, response) => {
    
};
 
const server = http.createServer(requestListener);


Request listener memiliki dua parameter, yaitu request dan response. Seperti yang ditunjukkan pada kode di atas, request adalah objek yang menyimpan informasi tentang permintaan yang dikirimkan oleh client. Objek ini memiliki informasi seperti alamat yang diminta, data yang dikirim, dan HTTP metode yang digunakan oleh client.

Sementara itu, response adalah objek yang digunakan untuk menanggapi permintaan. Dengan menggunakan objek ini, kita dapat menentukan data yang diberikan, format dokumen yang digunakan, kode status, atau informasi terkait response lainnya.

const requestListener = (request, response) => {
    response.setHeader('Content-Type', 'text/html');
 
    response.statusCode = 200;
    response.end('<h1>Halo HTTP Server!</h1>');
};



Kode di atas merupakan contoh logika yang bisa dituliskan di dalam request listener. Request listener akan menanggapi setiap permintaan dengan dokumen HTML, kode status 200, dan menampilkan konten “Halo HTTP Server!”.

Lalu, bagaimana caranya server selalu dapat menangani permintaan? Selain itu, setiap instance http.server memiliki method listen(). Method ini membuat http.server selalu standby untuk menangani permintaan yang masuk dari client. Setiap kali ada permintaan yang masuk, request listener akan dieksekusi.

Method listen() dapat menerima 4 parameter, berikut detailnya:

    1. port (number) : jalur yang digunakan untuk mengakses HTTP server.

    2. hostname (string) : nama domain yang digunakan oleh HTTP server.

    3. backlog (number) : maksimal koneksi yang dapat ditunda (pending) pada HTTP server.

    4. listeningListener (function) : callback yang akan terpanggil ketika HTTP server sedang bekerja
        (listening).


Namun, keempat parameter di atas bersifat opsional. Kita bisa memberikan nilai port saja, atau kombinasi apa pun dari keempatnya. Hal itu tergantung terhadap kebutuhan kita. Namun lazimnya, ketika memanggil method listen() kita memberikan nilai port, hostname, dan listeningListener.

const port = 5000;
const host = 'localhost';
 
server.listen(port, host, () => {
    console.log(`Server berjalan pada http://${host}:${port}`);
});


Latihan Membuat HTTP Server

Nah, sekarang giliran kita praktikan pada proyek nodejs-web-server. Silakan hapus kode yang ada pada server.js dan ganti dengan kode untuk membuat http server seperti ini:

const http = require('http');
 
const requestListener = (request, response) => {
    response.setHeader('Content-Type', 'text/html');
 
    response.statusCode = 200;
    response.end('<h1>Halo HTTP Server!</h1>');
};
 
 
const server = http.createServer(requestListener);
 
const port = 5000;
const host = 'localhost';
 
server.listen(port, host, () => {
    console.log(`Server berjalan pada http://${host}:${port}`);
});


Setelah itu, jalankan perintah npm run start pada Terminal. Jika server berhasil dijalankan, maka kita akan melihat pesan ‘Server berjalan pada http://localhost:5000’.




Untuk pengguna sistem operasi Windows, bila pop-up di bawah ini muncul, pilih saja “Allow access”.





Selamat! Kita berhasil membuat HTTP Server pertama menggunakan Node.js. Kita bisa coba melakukan request pada server tersebut melalui cURL seperti ini:

curl -X GET http://localhost:5000/



Silakan eksekusi kode di atas pada Terminal atau CMD. Anda akan mendapatkan response sesuai dengan yang dituliskan pada request listener.





Kita juga bisa mencoba langsung pada browser dengan mengunjungi halaman http://localhost:5000/.





Good Job! Akhirnya kita berhasil membuat web server pertama menggunakan Node.js! Walau masih sangat sederhana, namun hal tersebut merupakan hal pertama yang dilakukan oleh back-end developer dalam meniti karirnya.

Untuk materi selanjutnya, mari kita pelajari mengenai request dan response lebih dalam lagi.

Posting Komentar

0 Komentar