Route Pada NodeJS

Posted by Admin on 10 April 2018, 16:04 nodejs, route

Pada tutorial sebelumnya saya sudah menjelaskan mengenai dasar NodeJS. Pada tutorial kali ini saya melanjutkan pada pengenalan routing di NodeJS.

Pada tutorial ini, akan dijelaskan bagaimana nodejs membaca file sesuai dengan URL yang diakses.

Buat file server.js dengan script berikut

var http = require("http");
var route = require("./route.js"); //mengimport file route.js
 
http.createServer(route.handleRequest).listen(8080);

Setelah itu buat file route.js dengan script berikut

var fs = require("fs"); //untuk akses file
var url = require("url"); //untuk akses url

function renderFile(fileName,res){
  res.writeHead(200,{'Content-Type':'text:html'});
  fs.readFile(fileName,null,function(error,data){ 
    if(error){
      res.writeHead(404);
      res.write('File tidak ditemukan');
    }else{
      res.write(data);
    }
    res.end();
  }); 
}
 
module.exports = {
  handleRequest : function(req,res){
    res.writeHead(200,{'Content-Type':'text/html'});
    var path = url.parse(req.url).pathname;
 
    switch (path) {
      case '/':
        renderFile('./index.html',res);
        break;
      case '/users':
        renderFile('./users.html',res);
        break;
      default:
    }
  }
};

Keterangan :

fs.readFile(fileName,null,function(error,data){

Pada baris ini terdapat variable fileName, variable ini digunakan untuk membaca file pada server yaitu file index.html atau users.html

res.write(data);

Perintah diatas digunakan untuk menangkap isi file html, kemudian menuliskannya pada browser.

var path = url.parse(req.url).pathname;

Perintah diatas, digunakan untuk membaca path pada url, contoh : url http://localhost:8080/users, maka pathnya users

 

Selanjutnya buat file index.html dengan script berikut

<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Ini Index</title>
  </head>
  <body>
    <h2>Index HTML</h2>
  </body>
</html>

Buat file users.html dengan script berikut

<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>ini File User</title>
  </head>
  <body>
    <h2>File User</h2>
  </body>
</html>

Jalankan ulang server dengan mengakses URL berikut

  1. http://localhost:8080/ , maka file index.html yang diakses
  2. http://localhost:8080/users maka , file users.html yang diakses

 

Referensi

https://youtu.be/DxOQCbdEO7A