Category Archives: Node JS

[Dokumentasi] Menggunakan MongoDB sebagai Database Engine Node.js

Apa itu MongoDB? MongoDB adalah Dokumen Database open source dan NoSQL database.
Berikut ini penjelasan dari MongoDB (source : https://www.mongodb.org/ )
MongoDB (from “humongous”) is an open-source document database, and the leading NoSQL database. Written in C++, MongoDB features:

  • GridFS »
    Store files of any size without complicating your stack.

Berikut ini penggunaan MongoDB dan koneksinya dengan Node.js

  1. Instalasi
  • Download installer MongoDB pada https://www.mongodb.org/downloads
  • Pilih installer yang sesuai dengan sistem operasi yang digunakan
  • Instal MongoDB pada lokal komputer
  1. Contoh sederhana penggunaan MongoDB
  • Tentukan direktori penyimpanan database (dalam contoh ini direktori nya adalah c:mongodbmongodata)
  • Buka command prompt, ketikkan perintah berikut untuk menentukan lokasi database di atas

mongod –dbpath c:mongodbmongodata

  • Jalankan Mongo dengan mengetikkan mongo pada commandprompt, jika berhasil maka akan tampil pesan berikut :

MongoDB shell version: 2.4.5
connecting to: test

  • Di atas terlihat secara otomatis akan terkoneksi pada database test. Meskipun di atas terlihat telah terkoneksi ke database test, namun sebenarnya database test tersebut belum benar-benar terbuat, sampai database tersebut benar-benar telah terisi. Baik, kita abaikan saja database test.
  • Kita akan coba menggunakan database dengan nama nodetest1, ketik perintah berikut

use nodetest1

  • Seperti database test tadi, database nodetest1 yang kita gunakan belum benar-benar terbuat. Untuk itu kita akan mengisi database ini ke dalam collection. Ketikkan perintah berikut :

db.usercollection.insert({ “username” : “testuser1”, “email” : “testuser1@testdomain.com” })

  • Sebagai catatan, database MongoDB terdiri dari collection-collection. Namun tidak ada langkah khusus untuk membuat collection tersebut.
  • Untuk melihat isi dari collection tadi, ketik perintah berikut :

db.usercollection.find().pretty()

  • Hasilnya akan seperti berikut :

{
“_id”:ObjectId(“5202b481d2184d390cbf6eca”),
“username”:”testuser1″,
“email”:”testuser1@testdomain.com”
}

  • Tambahkan lagi data ke usercollection

newstuff = [{ “username” : “testuser2”, “email” : “testuser2@testdomain.com” }, { “username” : “testuser3”, “email” : “testuser3@testdomain.com” }]
db
.usercollection.insert(newstuff);

  • Jika dilihat isi dari collection, maka akan tampil seperti data berikut :

{
“_id”:ObjectId(“5202b481d2184d390cbf6eca”),
“username”:”testuser1″,
“email”:”testuser1@testdomain.com”
}
{
“_id”:ObjectId(“5202b49ad2184d390cbf6ecb”),
“username”:”testuser2″,
“email”:”testuser2@testdomain.com”
}
{
“_id”:ObjectId(“5202b49ad2184d390cbf6ecc”),
“username”:”testuser3″,
“email”:”testuser3@testdomain.com”
}

  1. Contoh koneksi Node.js ke database pada MongoDB

Pada tahap ini, akan ditampilkan data dari database MongoDB ke browser.

  • Berikut struktur html yang akan digenerate untuk ditampilkan ke browser

  • testuser1
  • testuser2
  • testuser3
    • Buka windows explorer, masuk kembali ke direktori dimana aplikasi disimpan (D:NodeJSSamplesFirstProject). Edit file app.js dengan menggunakan Text Editor
    • Perhatikan potongan kode berikut :

    var express=require(‘express’);
    var path=require(‘path’);
    var favicon=require(‘serve-favicon’);
    var logger=require(‘morgan’);
    var cookieParser=require(‘cookie-parser’);
    var bodyParser=require(‘body-parser’);
    Tambahkan 3 baris kode di bawahnya, sehingga akan tampak seperti berikut :
    var express=require(‘express’);
    var path=require(‘path’);
    var favicon=require(‘serve-favicon’);
    var logger=require(‘morgan’);
    var cookieParser=require(‘cookie-parser’);
    var bodyParser=require(‘body-parser’);
    // New Code
    var mongo=require(‘mongodb’);
    var monk=require(‘monk’);
    var db= monk(‘localhost:27017/nodetest1’);

    • Kemudian perhatikan potongan kode berikut :

    app.use(‘/’, routes);
    app.use(‘/users’, users);
    Tambahkan beberapa baris kode di atasnya / sebelumnya
    // Make our db accessible to our router
    app.use(function(req,res,next){
    req.db= db;
    next()
    ;});
    app.use(‘/’, routes);
    app.use(‘/users’, users);
    Pastikan kode yang baru diletakkan sebelum app.use(‘/’, routes);

    • Simpan file app.js dan tutup
    • Buka folder routes, edit file index.js. Tambahkan kode berikut (Mulai dari New Code sampai dengan End New Code) :

    var express = require(‘express’);
    var router = express.Router();
    //New Code
    /* GET Userlist page. */
    router.get(‘/userlist’, function(req, res) {
    var db = req.db;
    var collection = db.get(‘usercollection’);
    collection.find({},{},function(e,docs){
    res.render(‘userlist’, {
    “userlist” : docs
    });
    });
    });
    //End New Code
    /* GET Hello World page. */
    router.get(‘/helloworld’, function(req, res) {
    res.render(‘helloworld’, { title: ‘Hello, World!’ })
    });
    /* GET home page. */
    router.get(‘/’, function(req, res) {
    res.render(‘index’, { title: ‘Express’ });
    });
    module.exports = router;
    Simpan dan tutup.

    • Dari folder routes, pindah ke folder views. Di dalam folder views, buat file view baru dengan nama userlist.jade. Ketikkan kode berikut :

    extends layout
    block content
    h1.
    UserList
    ul
    each user, i in userlist
    li
    a(href=”mailto:#{user.email}”)= user.username
    Simpan dan tutup.

    • Buka kembali command prompt, dengan posisi di direktori penyimpanan (D:NodeJSSamplesFirstProject). Jalankan npm dengan mengetik perintah npm start
    • Buka browser, ketikkan http://localhost:3000/userlist
    • Browser akan menampilkan data user yang telah diinput pada collection MongoDB

    4. Input data ke database pada MongoDB

    • Pertama kita buat form input nya. Untuk membuat form tersebut, edit kembali file index.js. Tambahkan kode berikut (Mulai dari New Code sampai dengan End New Code) :

    var express = require(‘express’);
    var router = express.Router();
    //New Code
    /* GET New User page. */
    router.get(‘/newuser’, function(req, res) {
    res.render(‘newuser’, { title: ‘Add New User’ });
    });
    //End New Code
    /* GET Userlist page. */
    router.get(‘/userlist’, function(req, res) {
    var db = req.db;
    var collection = db.get(‘usercollection’);
    collection.find({},{},function(e,docs){
    res.render(‘userlist’, {
    “userlist” : docs
    });
    });
    });
    /* GET Hello World page. */
    router.get(‘/helloworld’, function(req, res) {
    res.render(‘helloworld’, { title: ‘Hello, World!’ })
    });
    /* GET home page. */
    router.get(‘/’, function(req, res) {
    res.render(‘index’, { title: ‘Express’ });
    });
    module.exports = router;
    Simpan file dan tutup.

    • Kemudian pindah ke folder views. Tambahkan file dengan nama newuser. Masukkan kode berikut :

    extends layout
    block content
    h1= title
    form#formAddUser(name=”adduser”,method=”post”,action=”/adduser”)
    input#inputUserName(type=”text”, placeholder=”username”, name=”username”)
    input#inputUserEmail(type=”text”, placeholder=”useremail”, name=”useremail”)
    button#btnSubmit(type=”submit”) submit

    • Buka kembali command prompt, jalankan kembali npm dengan mengetik npm start.
    • Buka browser, ketik http://localhost:3000/newuser. Browser akan menampilkan form input data.
    • Untuk menginput data yang telah diinput pada form, maka edit kembali file index.js pada forlder routes. Tambahkan kode berikut (mulai dari New Code sampai dengan End New Code) :

    var express = require(‘express’);
    var router = express.Router();
    //New Code
    /* POST to Add User Service */
    router.post(‘/adduser’, function(req, res) {
    // Set our internal DB variable
    var db = req.db;
    // Get our form values. These rely on the “name” attributes
    var userName = req.body.username;
    var userEmail = req.body.useremail;
    // Set our collection
    var collection = db.get(‘usercollection’);
    // Submit to the DB
    collection.insert({
    “username” : userName,
    “email” : userEmail
    }, function (err, doc) {
    if (err) {
    // If it failed, return error
    res.send(“There was a problem adding the information to the database.”);
    }
    else {
    // If it worked, set the header so the address bar doesn’t still say /adduser
    res.location(“userlist”);
    // And forward to success page
    res.redirect(“userlist”);
    }
    });
    });
    //End New Code
    /* GET New User page. */
    router.get(‘/newuser’, function(req, res) {
    res.render(‘newuser’, { title: ‘Add New User’ });
    });
    /* GET Userlist page. */
    router.get(‘/userlist’, function(req, res) {
    var db = req.db;
    var collection = db.get(‘usercollection’);
    collection.find({},{},function(e,docs){
    res.render(‘userlist’, {
    “userlist” : docs
    });
    });
    });
    /* GET Hello World page. */
    router.get(‘/helloworld’, function(req, res) {
    res.render(‘helloworld’, { title: ‘Hello, World!’ })
    });
    /* GET home page. */
    router.get(‘/’, function(req, res) {
    res.render(‘index’, { title: ‘Express’ });
    });
    module.exports = router;
    Simpan file dan tutup.

    • Jalankan kembali npm pada browser, dengan mengetikkan npm start
    • Buka browser, ketik http://localhost:3000/newuser. Browser akan menampilkan form input data.
    • Coba lakukan input data pada form, lalu Klik Submit. Jika berhasil, maka data akan tersimpan dan browser akan menampilkan seluruh data dari collection di database termasuk dengan data yang baru diinput.

    [Dokumentasi] Menggunakan Express sebagai Web Framework untuk Node.js

    Apa itu Express dan apa kaitannya dengan Node.js? Express adalah Framework Aplikasi berbasis Web pada Node.js yang bersifat fleksibel dan minimalis yang menyediakan satu set fitur yang tangguh untuk aplikasi web dan mobile.

    1. Instalasi

    Sebelum melakukan instalasi express, pastikan node.js sudah terinstal di komputer tujuan. Proses instalasi berikut akan dilakukan dengan menggunakan command prompt.

    • Jalankan command prompt, lalu masuklah ke direktori tempat penyimpanan Aplikasi yang akan dibuat, sebagai contoh di sini akan di simpan pada D:NodeJSSamplesFirstProject. Ketik perintah berikut

    cd D:NodeJSSamplesFirstProject

    • Ketik perintah berikut :

    npm install -g express-generator
    express
    npm install
    set DEBUG=FirstProject ./bin/www   ß ganti ‘FirstProject’ sesuai dengan nama folder
    npm start

    • Jika berhasil, maka akan tampil pesan berikut :

    > FirstProject@0.0.0 start D:NodeJSSamplesFirstProject
    > node ./bin/www

    • Setelah itu buka browser, dan ketikkan http://localhost:3000 pada address bar. Akan tampil pesan Welcome.

    1. Contoh sederhana penggunaan Express

    Untuk contoh sederhana penggunaan Express, yakni menampilkan tulisan Hello World ke browser dengan membuat 1 file view baru.

    • Buka Windows Explorer, masuklah ke direktori tempat penyimpanan aplikasi yang baru dibuat (D:NodeJSSamplesFirstProject).
    • Kemudian akan terlihat beberapa folder. Buka folder router dan backup file index.js, kemudian edit file index.js dengan menggunakan text editor (bisa juga menggunakan notepad). Berikut isi dari file index.js

    var express = require(‘express’);
    var router = express.Router();
    /* GET home page. */
    router.get(‘/’, function(req, res) {
    res.render(‘index’, { title: ‘Express’ });
    });
    module.exports = router;
    Ubah 3 baris kode di atas mulai dari router.get sehingga menjadi kode berikut :
    var express = require(‘express’);
    var router = express.Router();
    /* GET Hello World page. */
    router.get(‘/helloworld’, function(req, res) {
    res.render(‘helloworld’, { title: ‘Hello, World!’ })
    });
    module.exports = router;
    Simpan file tersebut, lalu keluar.

    • Dari folder routes, pindah ke folder views. Buat file dengan nama helloworld.jade dengan isi file berikut :

    p Hello, World! Welcome to #{title}
    Simpan lalu tutup.

    • Buka kembali command, dan masuk ke D:NodeJSSamplesFirstProject. Jalankan npm dengan mengetik :

    Npm start

    Hello, World! Welcome to Hello, World!

    [Dokumentasi] Memulai Penggunaan Node.js

    Apa itu Node.js? Node.js merupakan platform untuk membangun real-time application. Node.js dapat menangani event input-output server, yang memungkinkan para developer Javascripts untuk membuat event-driven servers dalam JavaScript. Dengan menggunakan Node.js, dapat menghemat pemakaian memori. Node.js pertama kali dikembangkan oleh Ryan Dahl pada tahun 2009. Sejak ditemukannya Node.js, Javascript bisa digunakan sebagai bahasa pemrograman di sisi server sekelas dengan PHP, ASP, C#, Ruby dll dengan kata lain Node.js menyediakan platform untuk membuat aplikasi Javascript dapat dijalankan di sisi server. Untuk mengeksekusi Javascript sebagai bahasa server diperlukan engine yang cepat dan mempunyai performance yang bagus. Node.js menerapkan solusi event-driven untuk menjaga performance tetap tinggi. Engine Javascript dari Google bernama V8 yang dipakai oleh Node.js merupakan engine yang sama yang dipakai di browser Google Chrome.
    Pada contoh ini, Node.js akan diinstal pada sistem operasi Windows

    • Instalasi
      • Download Installer NodeJS dari situs http://nodejs.org/download/
      • Instal NodeJS pada Komputer Lokal
      • Restart Komputer.
      • Jalankan command prompt, coba ketikkan node. Jika perintah tersebut tidak dikenali, coba buka Environment Variables, perhatikan pada System Variable untuk variable Path, lihat, apakah sudah terisi path/lokasi folder di mana node.exe terinstal. Jika belum, tambahkan lokasi folder node.exe dengan menambahkan tanda titik koma(semicolon) sebagai pemisah dengan path yang lain, klik OK.
      • Restart Komputer.
      • Jalankan kembali command prompt, ketik perintah node. Jika sudah berhasil, berarti kita sudah bisa menggunakan nodejs pada Komputer tersebut.
    • Contoh sederhana penggunaan Node.js
      -> Menampilkan tulisan “Hello World”
      • Buka Text Editor, ketikkan kode berikut :var http = require(‘http’);
        http.createServer(function (req, res) {
        res.writeHead(200, {‘Content-Type’: ‘text/plain’});
        res.end(‘Hello Worldn’);
        }).listen(8090, ‘127.0.0.1’);
        console.log(‘Server running at http://127.0.0.1:8090/’);
      • Simpan dengan nama index.js
      • Buka command prompt, masuk ke direktori penyimpanan file index.js di atas
      • Ketik perintah node index.js, jika berhasil maka akan tampil pesan berikut :
        ‘Server running at http://127.0.0.1:8090/
      • Jalankan browser, lalu ketikkan http://127.0.0.1:8090/. Browser akan menampilkan tulisan Hello World
      • Hal utama pada source code di atas adalah baris pertama “var http = require(‘http’);” yang menggunakan function global dari node.js yakni require(). Function require() ini digunakan dengan tujuan untuk menggunakan suatu module node.js. Node memiliki beberapa module built-in, antara lain : http, https, fs, path, crypto, url, net, dgram, dns, tls, and child_proces. Paket http merupakan paket bawaan dari platform Node.js yang mendukung penggunaan fitur-fitur protokol HTTP.
    • Node Package Modules
      Ketika bekerja dengan Node.js, maka kita akan selalu berhadapan dengan Module Node. Dengan Node Package Modules atau dikenal juga dengan NPM, kita dapat melakukan banyak hal, seperti : Instalasi, Setting, dan Update Module-Module yang akan digunakan pada aplikasi Node.js yang akan dibuat.Berikut ini beberapa module-module yang sering digunakan untuk Node.js
      • Express, sebuah web framework untuk Node.
      • Mongoose, sebuah module untuk bekerja dengan menggunakan MongoDB.
      • Passport, module autentikasi dan session.
      • Async, sebuah module yang berguna untuk menangani callback hell.