Node.js HTTP Server Routes

Routes pada NodeJS HTTP Server

Kita masih menggunakan kode yang telah kita tulis sebelumnya, yaitu kode untuk membuat server HTTP sederhana. Kali ini kita akan menambahkan beberapa routes pada server tersebut.

    • package.json
    • index.js
  • Route digunakan untuk menentukan apa yang akan dilakukan oleh server ketika menerima request dari client. Route ini biasanya berupa URL yang diakses oleh client. Pada contoh kali ini, kita akan membuat 2 route, yaitu / dan /about.

    index.js
    const http = require("http");
    const PORT = 3000;
     
    const server = http.createServer((req, res) => {
      if (req.url === "/") {
        res.write("Dari main route");
        res.end();
      }
     
      if (req.url === "/about") {
        res.write("About Page");
        res.end();
      }
    });
     
    server.listen(PORT, () => {
      console.log(`Server is running on port ${PORT}`)
    })

    Kita dapat mengakses kedua route tersebut dengan membuka browser dan mengakses localhost:3000 dan localhost:3000/about.

    Route dan HTTP Method

    Selain URL, route juga dapat menggunakan HTTP method sebagai penentu. HTTP method yang biasa digunakan adalah GET, POST, PUT, PATCH, dan DELETE. Kita dapat menggunakan method req.method untuk mendapatkan HTTP method yang digunakan oleh client.

    index.js
    const http = require("http");
    const PORT = 3000;
     
    const server = http.createServer((req, res) => {
      if (req.url === "/" && req.method === "GET") {
        res.write("Dari main route");
        res.end();
      }
     
      if (req.url === "/about" && req.method === "GET") {
        res.write("About Page");
        res.end();
      }
    });
     
    server.listen(PORT, () => {
      console.log(`Server is running on port ${PORT}`)
    })

    Route Parameter

    Route parameter adalah bagian dari route yang dapat berubah-ubah. Route parameter biasanya digunakan untuk mengidentifikasi data yang akan diambil dari server. Route parameter ditandai dengan tanda : diikuti dengan nama parameter. Kita dapat mengakses route parameter dengan menggunakan req.params.

    index.js
    const http = require("http");
    const PORT = 3000;
     
    const server = http.createServer((req, res) => {
      if (req.url === "/" && req.method === "GET") {
        res.write("Dari main route");
        res.end();
      }
     
      if (req.url === "/about" && req.method === "GET") {
        res.write("About Page");
        res.end();
      }
     
      if (req.url === "/blogs/:id" && req.method === "GET") {
        const id = req.params.id;
        res.write(`Blog dengan id ${id}`);
        res.end();
      }
    });
     
    server.listen(PORT, () => {
      console.log(`Server is running on port ${PORT}`)
    })

    Route Parameter vs Query Parameter

    Route parameter dan query parameter memiliki fungsi yang sama, yaitu untuk mengidentifikasi data yang akan diambil dari server. Perbedaan utama antara keduanya adalah route parameter digunakan untuk mengidentifikasi data yang ada di server, sedangkan query parameter digunakan untuk mengidentifikasi data yang ada di database.

    index.js
    const http = require("http");
    const PORT = 3000;
     
    const server = http.createServer((req, res) => {
      if (req.url === "/" && req.method === "GET") {
        res.write("Dari main route");
        res.end();
      }
     
      if (req.url === "/about" && req.method === "GET") {
        res.write("About Page");
        res.end();
      }
     
      if (req.url === "/blogs/:id" && req.method === "GET") {
        const id = req.params.id;
        res.write(`Blog dengan id ${id}`);
        res.end();
      }
     
      if (req.url === "/blogs" && req.method === "GET") {
        const id = req.query.id;
        res.write(`Query: ${req.query} \n Blog dengan id ${id}`);
        res.end();
      }
    });
     
    server.listen(PORT, () => {
      console.log(`Server is running on port ${PORT}`)
    })