1. Node.js
1.1. JavaScript Di Server
1.2. Node.js In Action
2. Asinkron I/O & Event
2.1. PHP & Server HTTP Apache
2.2. Javascript & Node.js
3. Server HTTP Dasar
3.1. Menjalankan Server
5. Pemrosesan Data Form HTML
5.1. URL Encode
5.2. Multipart Data
6. Module npm
6.1. Konsep
6.2. Paket npm
7. ExpressJS
7.1. Server File
7.1.1. Middleware
7.1.2. Akses Server
7.2. Server REST
8. Database
8.1. SQLite
8.1.1. Node Sqlite3
8.1.2. Enkripsi
8.1.2.1. sqlcipher
8.2. MySQL
8.2.1. Node MySQL
8.3. MongoDB
8.3.1. Node MongoDB
8.3.2. Mongoose
9. Testing
9.1. REST
9.2. Automasi
10. To Data URI
10.1. Penggunaan
10.2. todatauri.js
10.3. Koneksi MySQL
11. Person REST API
11.1. Cara Kerja
11.2. Server
11.3. Pengetesan
14. Tentang PengarangPublished with GitBook
Server HTTP Dasar
Penggunaan Node.js yang revolusioner yaitu sebagai server. Yup...mungkin kita terbiasa memakai server seperti Apache - PHP, Nginx - PHP, Java - Tomcat - Apache atau IIS - ASP.NET sebagai pemroses data di sisi server, tetapi sekarang semua itu bisa tergantikan dengan memakai JavaScript - Node.js!. Lihat contoh dasar dari server Node.js berikut (kode sumber pada direktori code pada repositori ini)
var http = require('http'), PORT = 3400; var server = http.createServer(function(req, res){ var body = "<pre>Haruskah belajar Node.js?</pre><p><h3>...Yo Mesto!</h3></p>" res.writeHead(200, { 'Content-Length':body.length, 'Content-Type':'text/html', 'Pesan-Header':'Pengenalan Node.js' }); res.write(body); res.end(); }); server.listen(PORT); console.log("Port "+PORT+" : Node.js Server...");
Paket http merupakan paket bawaan dari platform Node.js yang mendukung penggunaan fitur-fitur protokol HTTP. Object server merupakan object yang di kembalikan dari fungsicreateServer().
var server = http.createServer([requestListener])
Tiap request yang terjadi akan ditangani oleh fungsi callbackrequestListener. Cara kerja callback ini hampir sama dengan ketika kita menekan tombol button html yang mempunyai atribut eventonclick, jika ditekan maka fungsi yang teregistrasi oleh event onclickyaitu clickHandler(event) akan dijalankan.
<script> function clickHandler(event){ console.log(event.target.innerHTML+" Terus!"); } </script> <button onclick="clickHandler(event)">TEKAN</button>
Sama halnya dengan callbackrequestListener pada objectserver ini jika ada request makarequestListener akan dijalankan
function(req, res){ var body = "<pre>Haruskah belajar Node.js?</pre><p><h3>...Yo Mesto!</h3></p>" res.writeHead(200, { 'Content-Length':body.length, 'Content-Type':'text/html', 'Pesan-Header':'Pengenalan Node.js' }); res.write(body); res.end(); }
Paket http Node.js memberikan keleluasan bagi developer untuk membangun server tingkat rendah. Bahkan mudah saja kalau harus men-setting nilai field header dari HTTP.
Seperti pada contoh diatas agar respon dari request diperlakukan sebagai HTML oleh browser maka nilai fieldContent-Type harus berupatext/html. Setting ini bisa dilakukan melalui metode writeHead(),res.setHeader(field, value) dan beberapa metode lainnya.
Untuk membaca header bisa dipakai fungsi seperti res.getHeader(field, value) dan untuk menghapus field header tertentu dengan memakai fungsi res.removeHeader(field). Perlu diingat bahwa setting header dilakukan sebelum fungsires.write() atau res.end() di jalankan karena jika res.write()dijalankan tetapi kemudian ada perubahan field header maka perubahan ini akan diabaikan.
Satu hal lagi yaitu tentang kode status dari respon HTTP. Kode status ini bisa disetting selain 200 (request http sukses), misalnya bila diperlukan halaman error dengan kode status 404.
Menjalankan Server
Untuk menjalankan server Node.js ketik perintah berikut di terminal
$ node server-http.js Port 3400 : Node.js Server...
Buka browser (chrome) dan buka urlhttp://localhost:3400 kemudian ketik CTRL+SHIFT+I untuk membuka Chrome Dev Tool, dengan tool ini bisa dilihat respon header dari HTTP dimana beberapa fieldnya telah diset sebelumnya (lingkaran merah pada screenshot dibawah ini).