Showing posts with label nodejs. Show all posts
Showing posts with label nodejs. Show all posts

Sunday, March 18, 2018

Building RESTfull API Using Node JS, Express, and MongoDB

Hai everyone in the world hehe :D kali ini gue mau nge-share bagaimana cara membuat API menggunakan Node JS, Express Framework, dan MongoDB. Sebelum gue membahas cara pemmbuatan API tersebut gue akan sedikit memperkenalkan bahasa pemrograman JavaScript yang berjalan di sisi server side yaitu Node JS, Express Framework, dan MongoDB.



Node.js adalah perangkat lunak yang didesain untuk mengembangkan aplikasi berbasis web dan ditulis dalam sintaks bahasa pemrograman JavaScript. Bila selama ini kita mengenal JavaScript sebagai bahasa pemrograman yang berjalan di sisi client / browser saja, maka Node.js ada untuk melengkapi peran JavaScript sehingga bisa juga berlaku sebagai bahasa pemrograman yang berjalan di sisi server. Node.js memiliki pustaka server HTTP sendiri sehingga memungkinkan untuk menjalankan server web tanpa menggunakan program server web seperti Apache atau Nginx.


Express.js adalah Framework untuk pengembangan Web yang muncul di awal kehadiran Node.js, merupakan yang tertua dan tetap terpopuler untuk digunakan. Express.js memiliki keunggulan Fast, Unopinionated, dan minimalistExpress.js merupakan aplikasi web Node.js yang fleksibel dan menyediakan serangkaian fitur kuat untuk aplikasi web dan mobile.


MongoDB adalah salah satu jenis database NoSQL yang berbasis dokumen dengan fomat JSON. Dalam konsep MongoDB tidak ada yang namanya tabel, kolom ataupun baris yang ada hanyalah collection (ibaratnya tabel), document (ibaratnya record). MongoDB merupakan database open source berbasis dokumen (Document-Oriented Database) yang awalnya dibuat dengan bahasa C++. MongoDB sangat cocok untuk membangun sebuah sistem seperti blog, forum, portal berita, social networking, dan website yang tidak membutuhkan proses transaksi seperti sistem bank. MongoDB sangat tidak cocok jika digunakan untuk membangun sistem berbasis transaksi.

Nah mungkin sekarang kalian ingin bertanya, gimana sih car install ketiganya ? hmmm kepo ya ?? wkwkw. Cukup mudah kok untuk menginstallnya, untuk install Node Js bisa download di https://nodejs.org/en/. cara menginstall sama saja seperti kita menginstall sebuah program jadi ga ribet hehe. Untuk Express JS cuku dengan command npm install express --save pada folder project yang akan kita buat nanti. Sedangkan MongoDB bisa di download di https://www.mongodb.com/download-center?jmp=nav#community. Gue sendiri pake yang versi Community Server dan cara installnya mudah juga kaya Node JS :D

Oke sekarang kita masuk ke materi membuat API dari Node. Js, Express, dan MongoDB. Menurut gue cukup mudah bikin API nya hehe ceckidot..

1. Oke pertama kalian bikin folder untuk project kalian mau di mana bebas, kalo gue bikin di Disk D: dengan nama folder demo.


2. Kemudian masuk dalam folder tersebut melalui command prompt

  • Pertama kita akan buat file package.json dengan command npm init, enter terus sampai muncul Is this oke ? (yes) dan ketik y lalu enter. Kalian lihat di folder projectnya sudah terbuat file package.json.
  • Kemudian kalian install depedency yang kalian butuhkan untuk membuat API nya, yaitu dengan command :
    1. npm install express --save (untuk menginstall express framework pada project kita),
    2. npm install mongoose --save (untuk akses ke MongoDB),
    3. npm install morgan --save (untuk log pada aplikasi),
    4. npm install body-parser --save (untuk parsing url dan json),
    5. npm install method-override --save (untuk membangun protokol HTTP method).
  • Setelah menginstall semua depedency yang kita butuhkan makan akan terbuat folder node_modules dan file package-lock.json, serta menambahkan beberapa depedencynya ke file package.json.

  • Buat file dengan nama app.js , bebas membuat nama filenya bisa server.js atau yang lainnya. tulis kan script berikut pada file app.js.
  • Buat folder baru di dalam folder demo dengan nama routes dan buat file baru didalamnya dengan nama car.js, lalu buat script berikut pada file car.js.
  • Kemudian Buat folder baru di dalam folder demo dengan nama models dan buat file baru didalamnya dengan nama car.js, lalu buat script berikut pada file car.js.
3. Nahhhhhh setelah selesai membuat API nya, kuy kita jalankan aplikasi kita cukup dengan command node app.js dan jangan lupa aktifkan database mongodb kalian terlebih dahulu dengan cara jalankan aplikasi mongod di direktori tempat di installnya mongoDB.

4. Setelah aplikasi sudah berjalan dan database kita juga sudah terkoneksi mari kita test dengan menggunakan postman :D
  • API untuk post data 
  • API untuk get data
  • API untuk update data

  • API untuk delete data

Yapssss.... kita telah selesai dan berhasil membuat API menggunakan Node Js, Express, dan MongoDB . Selamat mencoba everyone !!! 💪



Referensi :

Saturday, March 17, 2018

Create Own Module on Node Package Manager (NPM)


npm (Node Package Manager) merupakan package manager untuk JavaScript. Seperti dalam PHP kita mengenal Composer, di Ruby ada RubyGems, di Python kita mengenal pip, dll. Dengan menggunakan npm, kita dapat mencari, mendapatkan, menggunakan dan berbagi package-package JavaScript.

Bagi kalian yang ingin membuat dan mendistribusikan module kalian ke public yang bisa digunakan orang lain kalian bisa menggunakan npm. Banyak keuntungan yang didapat jika kita mendistribusikan module yang kita buat salah satunya adalah kita bisa mengelompokan fungsi fungsi yang sering digunakan, jika di project lain butuh fungsi yang sejenis kita hanya tinggal memakan module yang sudah didistribusikan.
Sebelum kita membuat module npm pastikan kalian sudah menginstall node di local kalian, jika belum bisa check link berikut :
https://nodejs.org/en/download/
Atau jika kalian memiliki brew, install menggunakan brew dengan command
 $ brew install node  

Jangan lupa untuk bisa mendistribusikan module yang kita buat kita perlu daftarkan diri kita di https://www.npmjs.com/ untuk mendapatkan hak akses.

Jika sudah, masuk ke folder directory tempat kalian ingin membuat module kalian, lalu execute command
 $ npm init  

Nanti akan diminta memasukan deskripsi dari module yang kalian inginkan seperti nama, deskripsi, keyword, licence, dll, jika sudah nanti kalian akan dibuatkan file package.json dimana file tersebut berisi informasi yang kalian masukan.
 {  
  "name": "myModule",  
  "version": "1.0.0",  
  "description": "module description",  
  "main": "index.js",  
  "scripts": {  
   "test": "echo \"Error: no test specified\" && exit 1"  
  },  
  "author": "yourName <yourEmail@domain.com>",  
  "license": "MIT",  
  "dependencies": {  
   "http": "0.0.0",  
   "https": "^1.0.0"  
  }  
 }  
Jika sudah, pastikan anda sudah login npm, jika belom execute command
 $ npm login  

Dan masukan username, email dan password, jika sudah pastikan dengan menggunakan command npm whoami.
Jika sudah, Lets Make It!
Buat file index.js karena di secara default package.json mengarahkan module kita ke index.js, kalian bisa mengubahnya.

Kira kira simple codenya seperti ini
 class Calculator{  
      constructor(x,y) {  
           this.x = x;  
           this.y = y;  
      }  
      add() { return this.x + this.y };  
      subtract() { return this.x - this.y };  
      multiply() { return this.x * this.y };  
      divide() { return this.x / this.y };  
      remainder() { return this.x % this.y };  
 }  
 module.exports = Calculator;  
Jika sudah, sebelum kalian ingin mendistribusikan module kalian, alangkah baiknya kalian coba di local kalian dulu.
Jika ingin mengubungkan module yang kalian buat execute command
 $ npm link  

Lalu kalian bisa mencoba module kalian dengan execute command
 $ npm link your_module  

Sesuai dengan nama yang didaftarkan di package.json, setiap ada perubahan di module kalian secara otomatis directory yang menggunakan module kalian akan berubah. Ini cara yang efektif untuk mencoba module kalian.
Kalian bisa gunakan module yang sudah di kalian bikin dengan cara meng-export seperti gambar dibawah ini
 const Calculator = require('mead-module');  
 const numberA = 3;  
 const numberB = 4;  
 let calc = new Calculator(numberA,numberB);  
 console.log('Calculator ' + numberA + ' + ' + numberB + ' = ', calc.add());  
 console.log('Calculator ' + numberA + ' - ' + numberB + ' = ', calc.subtract());  
 console.log('Calculator ' + numberA + ' * ' + numberB + ' = ', calc.multiply());  
 console.log('Calculator ' + numberA + ' / ' + numberB + ' = ', calc.divide());  
 console.log('Calculator ' + numberA + ' % ' + numberB + ' = ', calc.remainder());  

Jika kalian sudah memastikan semua fungsi berjalan dengan lancar, kalian bisa langsung execute command
 $ npm publish  

Yang nantinya module kalian akan distribusikan secara public jadi semua orang bisa menggunakan module kalian jadi gunakan nama module yang unik.
Kalian bisa check module yang kalian buat di profile npm.
Jika sudah kalian bisa menggunakan module kalian secara public dengan execute command
 $ npm install your_module  

Dengan itu module kalian sudah menjadi dependency dengan project kalian
DONE!!
Jika nantinya ada perubahan di module kalian, kalian bisa gunakan versioning dengan beberapa command seperti berikut ini
 $ npm version patch //x.x.1  
 $ npm version minor //x.1.x  
 $ npm version major //1.x.x  

Command tersebut untuk merubah versi module kalian, jika ingin mengupdate module yang sudah di-publish gunakan command
 npm publish  

References