Membuat RESTfull API dengan Mongoose di Nodejs

Posted by Admin on 28 April 2018, 11:23 nodejs, expressjs, database, mongodb, mongoose

MongoDB merupakan database open source berbasis dokumen (Document-Oriented Database), sebuah database yang menyimpan data Anda sebagai dokumen. Kebanyakan dokumen ini mirip seperti struktur JSON, yang disebut sebagai BSON.

Mongoose adalah sebuah framework JavaScript yang umumnya digunakan pada aplikasi Node.js dengan database MongoDB.

Pada artikel ini, saya menulis step by step membuat API dengan operasi Create, Read, Update, dan Delete pada database mongodb. Berikut tutorialnya :

Siapkan dahulu database MongoDB, lalu buat database baru, misal contohDB.

Buat folder project, misal folder crud, lalu install expressjs, mongoose, dan body-parser.

npm install express mongoose --save

Buat file app.js dengan isi code berikut

var express = require("express"); 
var app = express();
var bodyParser = require('body-parser'); //untuk menangkap post data
 
// for parsing application/json
app.use(bodyParser.json());
 
// for parsing application/xwww-
app.use(bodyParser.urlencoded({ extended: true }));
//form-urlencoded
 
//load mongoose
var mongoose = require('mongoose');
 
//hubungkan ke Mongodb
mongoose.connect('mongodb://localhost/contohDB') //sesuaikan dengan database Anda
  .then(() => console.log('Berhasil terhubung dengan MongoDB'))
  .catch((err) => console.error(err));
 
 
var guru = require('./controller/guru'); //memanggil file di guru.js di controller/
app.use('/guru', guru);
 
app.listen(8080,"192.168.0.108"); //sesuaikan dengan IP Anda

Buat folder controller, lalu buat file guru.js dengan isi code berikut

var express = require('express');
var router = express.Router();
var mongoose = require('mongoose');
var app = express();
var Guru = require('../models/guru.js'); //memanggil file guru.js di folder model/
 
//fungsi GET
router.get('/', function(req, res, next){
    Guru.find(function(err, guru){
        if(err) return next(err);
        res.json(guru);
    });
});
 
//fungsi POST
router.post('/', function(req, res, next){
  var item = {
    nama: req.body.nama, //menangkap post data
    lokasi: req.body.lokasi, //menangkap post data
    biaya: req.body.biaya
  };
  var data = new Guru(item); //inisiasi object baru
  data.save(); //simpan object baru
  res.send(item);
});
 
module.exports = router;

Buat folder model, lalu buat file guru.js di dalamnya dengan code berikut

var mongoose = require('mongoose');
 
var GuruSchema = new mongoose.Schema({
    nama: String,
    lokasi: String,
    biaya: Number
});
 
module.exports = mongoose.model('Guru', GuruSchema);

Jalankan aplikasi, lalu coba lakukan post data menggunakan Postman

Referensi

http://mongoosejs.com/docs/guide.html

https://medium.com/@ocittwo/membuat-rest-api-dengan-nodejs-82a1349c6647

https://github.com/mschwarzmueller/nodejs-basics-tutorial/blob/master/11-mongoose/routes/index.js

https://www.tutorialspoint.com/expressjs/expressjs_database.htm