Kategori
belajar coding developer expressjs javascript learning Mahasiswa nodejs programmer Uncategorized

Apa Perbedaan Antara req.param, req.body, req.query pada NodeJS ?


Pada artikel kali ini saya ingin berbagi tentang dasar-dasar nodejs. Ketika mempelajari bagaimana cara kerja dari sebuah web, maka kita menemukan bahwa ada istilah request dan response.  Dimana request adalah permintaan dari client sedangkan response adalah pemberian respon ketika permintaan request dilakukan.

Nah asyiknya, pada pemrograman nodejs kita harus melakukan penanganan url, request, dan response secara manual. Tidak hanya pada nodejsnya framework seperti expressjs juga mengharuskan kita menangani request dan response secara manual.

Adapun langkah-langkahnya :

  1. Memanggil web server yang telah disediakan NodeJS.
  2. Membaca URL yang ingin diakses pengguna, dan memanggil fungsi untuk memproses URL tersebut.
  3. Memproses HTTP Request dari client.
  4. Menghasilkan HTTP Response untuk client.

Pada dasarnya kedua parameter diatas (request,response) berasal dari http.createServersebuah http server yang disediakan oleh nodejs yang menangani komunikasi web (request,response). Ketika http.createServer dijalankan melalui permintaan request, maka fungsi ini memberikan dua parameter yaitu :

  1. request, yang merupakan instan dari http.IncomingMessage, mewakili HTTP Request yang dikirimkan pengguna. Sebuah koneksi bisa saja menghasilkan beberapa HTTP Request. Kita akan membahas bagian ini lebih jauh nantinya.
  2. response, instan dari http.ServerResponse, mewakili HTTP Response yang akan diberikan kepada pengguna.

Ketika kita melakukan permintaan (request) terkadang bisa jadi meminta, atau juga meminta sekaligus mengirim value ke server, baik itu melalui url, atau form (html). Nah pada kali ini kita akan membahas bagaimana mengirim dan mengambil value yang dikirim melalui reqest.

  1. req.query
    Contohnya ketika kita melakukan request terhadap url yang memiliki parameter dan nilai, misal  http://localhost:3000/search?nama=kangmus&umur=16.
    Maka untuk menangkap value yang dikirim dari url tersebut pada nodejs/express caranya adalah :

    router.get(‘/search’, function(req, res, next) {
    var name = req.query.nama;
    console.log(`nama :  ${nama}`)
    var age = req.query.umur;
    console.log(`umur :  ${umur}`)
    res.send(‘Request has parsed see console’);
    });

  2. req.params
    req.params berfungsi untuk menangkap nilai yang dikirimkan melalui url yang mengirimkan nilai secara langsung tanpa key (lihat contoh url pertama) mislanya http://localhost:3000/search/kangmus/16. Maka untuk menangkap value yang dikirim dari url tersebut pada nodejs/express caranya adalah :

    router.get(‘/search/:nama/:umur’, function(req, res, next) {

                var name = req.params.nama;
                console.log(`Nama :  ${nama}`)
                var age = req.params.umur;
                console.log(`umur :  ${umur}`)
                res.send(‘Request has parsed see console’);
             });

  3. req.body
    req.body berfungsi untuk menangkap nilai yang dikirimkan melalui form-html (interface), contoh :

    <form  action=”/search” method=”post”>
    <input  type=”text” nama=”nama” placeholder=”nama”>
    <input  type=”text” nama=”umur” placeholder=”umur”>
    <button  type=”submit”>Search</button>
    </form>

    untuk menggunakan req.body sendiri kita harus memanggil library body-parser. body-parser adalah library untuk menangani application/x-www-form-urlencoded (data json yang dikirim melalui form-html/interface). Sedangkan cara menggunakan librarynya sebagai berikut :

    var bodyParser = require(‘body-parser’);  //memanggil library

    //menggunakan library pada express
    app.use(bodyParser.urlencoded({ extended: false }))
    app.use(bodyParser.json())

    Setelah itu kita bisa menangkap data dari form-html dengan cara :

    router.get(‘/search’, function(req, res, next) {
    var name = req.body.nama;
    console.log(`Nama :  ${nama}`)
    var age = req.body.umur;
    console.log(`umur :  ${umur}`)
    res.send(‘Request has parsed see console’);
    });

    Itulah tadi bagaimana cara penanganan atau menangkap data dari url maupun form-html (interface). semoga bermanfaat.

Oleh Musliadi

Software Engineer

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Google

You are commenting using your Google account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s