Membuat Aplikasi Web CRUD Menggunakan Node.js, Dengan Database Mongodb

Dalam artikel ini akan dibuat aplikasi web CRUD (Create, Read, Update, Delete) dengan menggunakan Node.js. Setiap data yang dimasukkan dalam aplikasi ini akan disimpan dalam database Mongodb, untuk menginstall database dapat dilihat pada artikel Tutorial Mongodb. Secara garis besar, langkah-langkah untuk membuat aplikasi ini adalah:
1. Membuat kerangka aplikasi dengan express-generator.
2. Menginstal dependencies/modul-modul yang diperlukan.
3. Menghubungkan ExpressJS(framework Node.js) dengan Mongodb.
4. Membuat schema dan model untuk database.
5. Membuat rute URL aplikasi.
6. Membuat fungsi Get, Post, Put, dan Delete.
Untuk membuat aplikasi ini hanya dibutuhkan Node.js dan Mongodb, jadi sebelum memulai install dulu keduanya.



1. Buat Kerangka Aplikasi
Untuk membuat kerangka aplikasi gunakan express-generator, install dengan cara masuk ke cmd lalu ketik:

npm install express-generator -g  

Melalui cmd masuk ke direktori dimana kerangka aplikasi akan dibuat lalu ketik:

express erabelajar -e  


2. Install Dependencies
Install modul-modul yang diperlukan dalam aplikasi ini dengan cara masuk ke folder yang baru saja dibuat dengan express-generator melalui cmd, lalu ketik:

npm install  

Jalankan webserver dengan mengetik:

npm start  

Cek apakah webserver sudah berjalan dengan mengetik localhost:3000 pada browser, jika berjalan akan muncul tulisan "Welcome to Express". Untuk mematikan webserver tekan CTRL+C pada cmd server. Setiap ada kode yang diubah maka webserver harus direstart terlebih dahulu. Agar tidak repot menyalakan dan mematikan server maka install nodemon, pada cmd ketik:

install nodemon -g  

Jalankan webserver dengan mengetik:

nodemon  

Sekarang webserver akan merefresh secara otomatis setiap ada kode yang diubah.



3. Hubungkan ExpressJS dengan Mongdb
ExpressJS merupakan framework dari Node.js yang sudah ter-install ketika dependencies diinstall. Jalankan server mongodb dengan mengetik:

mongod  

Selanjutnya install mongodb driver untuk Nodejs, dengan cara masuk ke folder aplikasi dengan cmd lalu ketik:

npm install mongoose --save  

Load module mongoose dan hubungkan dengan mongodb, pada erabelajar/app.js tambahkan baris kode:

//load mongoose
var mongoose = require('mongoose');

mongoose.Promise = global.Promise;

//hubungkan ke Mongodb
mongoose.connect('mongodb://localhost/erabelajar')  
  .then(() => console.log('Berhasil terhubung dengan MongoDB'))
  .catch((err) => console.error(err));

Untuk mengecek apakah sudah terhubung ke database atau belum, pada folder aplikasi cmd, ketik npm start. Jika terhubung akan keluar tulisan "Berhasil terhubung dengan MongoDB".



4. Buat schema dan model untuk database
Dalam direktori aplikasi buat folder models, di dalamnya buat file Guru.js yang berisi kode:

var mongoose = require('mongoose');

var GuruSchema = new mongoose.Schema({  
    nama: String,
    Lokasi: String,
    Biaya: Number
});

module.exports = mongoose.model('Guru', GuruSchema);  



5. Buat rute URL aplikasi
Masuk ke folder routes, buat file guru.js. Selanjutnya pada app.js tambahkan kode:

var guru = require('./routes/guru');

app.use('/guru', guru);  



6. Membuat fungsi GET, POST, PUT, DELETE
Pada file ./routes/guru.js, ketik:

var express = require('express');  
var router = express.Router();  
var mongoose = require('mongoose');  
var Guru = require('../models/Guru.js');

<--fungsi GET-->

<--fungsi POST-->

<--fungsi GET /guru/id--> //get berdasarkan id

<--fungsi PUT /guru/id--> //edit berdasarkan id

<--fungsi DELETE /guru/id--> //delete berdasarkan id

module.exports = router;  

Masukkan fungsi get:

//fungsi GET
router.get('/', function(req, res, next){  
    Guru.find(function(err, guru){
        if(err) return next(err);
        res.json(guru);
    });
});

Get berfungsi untuk menampilkan data pada database, walaupun belum ada data kita bisa mencoba untuk menampilkan isi database dengan cara buka cmd dan ketik mongod untuk menjalankan server database, lalu buka cmd baru masuk ke folder aplikasi dan ketik nodemon untuk menjalankan webserver. Sekarang ketik localhost:3000/guru pada browser, jika berhasil maka akan muncul tampilan [] di browser.

masukkan fungsi post:

//fungsi POST
router.post('/', function(req, res, next){  
    Guru.create(req.body, function(err, post){
        if(err) return next(err);
        res.json(post);
    });
});

Dengan fungsi ini data sudah bisa dimasukkan, gunakan aplikasi Postman untuk melihat data, memasukkan, dan mengubah data.
Masukkan URL localhost:3000/guru, pilih metode POST, lalu pada tab Body pilih x-www-form-urlencoded, masukkan nama key dan value, klik send. Untuk melihat seluruh data yang sudah dimasukkan pilih metode GET dan klik Send.
Selanjutnya masukkan fungsi Get guru/id, Put, dan Delete:

//fungsi get /guru/id
router.get('/:id', function(req, res, next){  
    Guru.findById(req.params.id, function(err, post){
        if(err) return next(err);
        res.json(post);
    });
});

//fungsi PUT /guru/id
router.put('/:id', function(req, res, next){  
    Guru.findByIdAndUpdate(req.params.id, req.body, function(err, post){
        if(err) return next(err);
        res.json(post);
    });
});

//fungsi DELETE /guru/id
router.delete('/:id', function(req, res, next){  
    Guru.findByIdAndRemove(req.params.id, req.body, function(err, post){
        if(err) return next(err);
        res.json(post);
    });
});

Ketiga fungsi diatas dapat dilakukan dengan menggunakan Postman.
Pada URL Postman masukkan localhost:3000/guru/id_guru untuk menampilkan guru sesuai dengan id, untuk mengubah data gunakan fungsi PUT, dan untuk menghapus gunakan fungsi DELETE.

Source code untuk artikel ini bisa dilihat di https://github.com/era-belajar/CRUD-NodeJS-MongoDB

Geri Muhano

Web programmer di erabelajar.com. Alumni UIN Jakarta.