Skip to main content

[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:\mongodb\mongodata)
  • Buka command prompt, ketikkan perintah berikut untuk menentukan lokasi database di atas
mongod --dbpath c:\mongodb\mongodata
  • 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:\NodeJS\Samples\FirstProject). 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:\NodeJS\Samples\FirstProject). 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.

    Comments

    Popular posts from this blog

    Twitter memposting keuntungan pertama meski ada masalah bot

    Jaringan sosial lambat berkembang karena berkaitan dengan kekhawatiran akan jutaan akun palsu yang melakukan tweet dan retweet di seluruh platform.   Ada jutaan akun palsu yang melakukan tweet , retweet dan like ke sebagian besar akun terkenal di Twitter. Jadi apa yang akan dilakukan perusahaan tentang hal itu?   Masalahnya telah menggelegak di bawah permukaan di Twitter selama bertahun-tahun. Tapi itu dibawa ke permukaan oleh The New York Times, yang menemukan perusahaan yang menghasilkan uang dengan menggunakan bots - program komputer otomatis yang terkadang berperan sebagai orang sungguhan - untuk memperbanyak pengikut selebriti, eksekutif bisnis, dan bahkan anggota dewan Twitter sendiri sebenarnya punya. Twitter mulai membersihkan jutaan akun palsu untuk menanggapi hal ini. Sulit untuk mengatakan berapa banyak akun palsu di luar sana. Sebuah studi yang dirilis tahun lalu menemukan bahwa sebanyak 15 persen akun Twitter aktif dikendalikan oleh bot. Twitter menga...

    Acer Swift 7 saat ini merupakan komputer tertipis di dunia

    Acer mengatakan 8.98mm Swift 7 adalah laptop tertipis di dunia. Acer memulai 2018 dengan meluncurkan salah satu laptop tertipis yang pernah ada di CES 2018. The ultra-skinny Swift 7 (SF714-51) terlihat sangat ramping dan futuristik dengan ketebalan hanya 8.98mm. Acer mengklaim itu adalah laptop tertipis di dunia. Laptop ini akan mulai dijual pada bulan April dengan harga mulai dari $ 1,699 dan £ 1,599. Harga dan ketersediaan Australia belum dikonfirmasi namun harga awal Inggris dikonversi ke AU $ 2.765. Laptop yang berpenampilan bagus ini memiliki desain aluminium hitam seluruhnya dengan layar sentuh 14 inci dengan bezels sempit. Laptop ini juga memiliki konektivitas 4G LTE; Desainnya mengintegrasikan antena ke sasis unibody.   Spesifikasi : 7th-generation Intel Core i7 processor 256GB of PCIe SSD storage 8GB LPDDR3 memory 4G LTE connectivity 14-inch Corning Gorilla Glass touchscreen 1,920x1,080-pixel resolution display Backlit keyboard Up to 10 hours of battery life Wi...

    Manfaat Temulawak bagi Kesehatan

    Temulawak merupakan tanaman rempah asli Indonesia yang memiliki beragam khasiat untuk kesehatan. Bagian yang sering dimanfaatkan adalah bagia akar atau sering jug disebut dengan rimpang. Bagian inilah yang sering diolah untuk dijadikan sebagai obat berbagai penyakit. Khasiat dari tanaman temulawak adalah untuk mengatasi gangguan ginjal, melancarkan pencernaan, menyehatkan jantung, dan menjaga kesehatan hati. Sebenarnya masih banyak jenis penyakit lain yang bisa disembuhkan dengan tanaman obat ini. Apalagi bila penggunaannya dikombinasikan dengan tanaman obat lain, tentu khasiatnya akan semakin terasa. Manfaat Temulawak bagi Kesehatan Berikut ini manfaat temulawak bagi kesehatan: 1. Melancarkan Proses Pencernaan Manfaat temulawak yang pertama adalah melancarkan proses pencernaan. Hal ini dikarenakan temulawak mengandung senyawa yang diketahui dapat merangsang produksi empedu, yang dapat membantu meningkatkan kesehatan pencernaan dan mengatasi masalah pencernaan. 2....