URL Encode

Hanya akan dibahas untuk 2 metode HTTP yaitu GET dan POST saja. Metode GET untuk menampilkan form html dan POST untuk menangani data form yang dikirim

Ok langsung kita lihat kode server sederhana untuk parsing data form melalui objek request dengan data form bertipe application/x-www-form-urlencoded yang merupakan default dari tag form.

var http = require('http');
var data = [];
var qs = require('querystring');

var server = http.createServer(function(req, res){
    if('/' == req.url){
        switch(req.method){
            case 'GET':
                tampilkanForm(res);
                break;
            case 'POST':
                prosesData(req, res);
                break;
            default:
                badRequest(res);
        }
    } else {
        notFound(res);
    }
});

function tampilkanForm(res){
    var html = '<html><head><title>Data Hobiku</title></head><body>'
        + '<h1>Hobiku</h1>'
        + '<form method="post" action="/">'
        + '<p><input type="text" name="hobi"></p>'
        + '<p><input type="submit" value="Simpan"></p>'
        + '</form></body></html>';

    res.setHeader('Content-Type', 'text/html');
    res.setHeader('Content-Length', Buffer.byteLength(html));
    res.end(html);
}

function prosesData(req, res) {
   var body= '';
   req.setEncoding('utf-8');
   req.on('data', function(chunk){
       body += chunk;
   });

   req.on('end', function(){
       var data = qs.parse(body);
       res.setHeader('Content-Type', 'text/plain');
       res.end('Hobiku: '+data.hobi);
   });
}

function badRequest(res){
   res.statusCode = 400;
   res.setHeader('Content-Type', 'text/plain');
   res.end('400 - Bad Request');
}

function notFound(res) {
   res.statusCode = 404;
   res.setHeader('Content-Type', 'text/plain');
   res.end('404 - Not Found');
}

server.listen(3003);
console.log('server http berjalan pada port 3003');

Untuk mengetest GET dan POST bisa dilakukan melalui curl, browser atau melalui gui Postman.

GET

GET form fields

POST

POST

module querystring dari Node.js berfungsi untuk mengubah url encoded string menjadi objek JavaScript. Contohnya

querystring.parse('nama=lanadelrey&job=singer&album=borntodie&ultraviolence');
// returns
{ nama: 'lanadelrey', job: 'singer',album: ['borntodie', 'ultraviolence']}