Belajar Membuat API Menggunakan Node.js, Express and MongoDB (Bagian 1)

Walaupun kelihatannya sepi-sepi saja penggunaan teknologi Node.js di Indonesia (atau saya yang kurang gaul), nyatanya teknologi ini sudah ramai digunakan di dunia barat sana. Nampaknya hal ini mirip dengan kisah Python dan Ruby (dan juga Ruby on Rails) yang setahu saya sudah cukup lama ramai di luar namun di sini masih relatif sepi dibandingkan dengan Java dan PHP.

cover

Saya cukup terpukau ketika mengetahui salah satu perusahaan besar bidang software development di Indonesia mulai mencari software engineer yang menguasai Python dan Rails. Dalam beberapa waktu kedepan bukan tidak mungkin Node.js akan mengalami kisah yang sama.

Cukup pengantarnya sekarang mari kita belajar Node.js supaya siap saat teknologi ini mulai ramai di Indonesia :D.

Aplikasi prakarya yang akan kita buat berupa API untuk resource book. Struktur folder dan file akhir dari prakarya ini bisa dilihat pada gambar di bawah

1. Struktur Project

Persiapan MongoDB

Pada terminal MongoDB, pada database apa saja yang pembaca inginkan buat collection baru dengan nama books dan masukkan beberapa sampel data yang memiliki field :
– title
– author
– page

contoh :

Membuat package.json

Sebelum memulai koding kita harus membuat file deklarasi project. Buat file ini di root folder dan isinya adalah

Dependencies adalah library yang kita perlukan dalam aplikasi prakarya kita.

Setelah beres jangan lupa untuk menjalankan perintah install melalui terminal/cmd

Membuat Mongoose Model

Mongoose digunakan untuk mapping document MongoDB kedalam kode JavaScript. Pada folder project buat folder baru dengan nama models dan buat file baru didalamnya dengan nama book.js.

Ketikkan (benar-benar diketik ya jangan dikopas) kode berikut didalam book.js

Membuat Route

Nah, route ini digunakan untuk mengarahkan request oleh pengguna ke response yang ditulis oleh developer. Pada folder project buat folder baru dengan nama routes dan buat file baru didalamnya dengan nama book.js.

Ketikkan (Sekali lagi,benar-benar diketik ya jangan dikopas!) kode berikut didalam book.js

Dari kode di atas bisa dilihat ada 2 route yang bisa ditangani oleh aplikasi.

Pertama, saat pengguna mengarahkan ke domain/book maka response yang dikirim adalah berupa semua data book pada database dalam bentuk JSON.

Kedua, saat pengguna mengarahkan ke domain/book/someId maka response yang dikirim adalah berupa sebuah data book pada database yang memiliki fied _id sama dengan parameter someId dalam bentuk JSON.

Kalau masih bingung kok Book.find() bisa mengambil data dari database, dan ada method apa saja selain find() silahkan buka Koneksi Node.js MongoDB Menggunakan Mongoose.

Membuat Config Database

Sebentar lagi proses membuat aplikasi prakarya jilid 1 kita akan segera selesai, sebelum sampai ke tahap ada ada 1 tahap yang jangan terlewatkan.

Pada folder project buat folder baru dengan nama config dan buat file baru didalamnya dengan nama database.js. Berikut adalah isinya

Secara gamblang terlihat bahwa file ini digunakan untuk menyimpan koneksi string ke MongoDB.

Membuat Main App

Akhirnya sampailah kita tahap akhir dari proses membuat aplikasi prakarya jilid 1 :D.

File ini digunakan sebagai semacam starter aplikasi. Pada file ini dipanggil file-file yang sudah sama-sama kita buat pada langkah-langkah di atas.

Testing App

Jalankan aplikasi dengan mengetikkan perintah berikut pada terminal/cmd

Coba akses route yang telah dibuat tadi di browser atau pada POSTMAN, saya lebih merekomendasikan menggunakan POSTMAN.

Route localhost:1234/book

2. Response book

Route localhost:1234/book/550a3d6896feafd94d628b8f

3 Response book id

Penutup

Aplikasi prakarya kita baru mampu digunakan untuk memperoleh semua data buku dan data buku dengan id tertentu. Pada jilid 2 nanti kita akan sama-sama menambahkan kemampuan untuk insert, update dan delete.

Semoga bermanfaat 🙂

Facebook Comments
 

Agung Setiawan

Agung Setiawan adalah software engineer di BukaLapak.com, penulis sekaligus pecinta sastra, dan pembaca buku

 
Halo, perkenalkan saya Agung Setiawan.
Saya Software Engineer di BukaLapak.
Simak pemikian saya soal dunia Software Engineering via Twitter di @agungsetiawanmu dan facebook
Blog ini saya update seminggu sekali jadi sering-sering saja mampir
Mau belajar Vim bareng saya?
Belajar ngoding dari nol menggunakan PHP

2 thoughts on “Belajar Membuat API Menggunakan Node.js, Express and MongoDB (Bagian 1)

  1. maaf pak saya mau bertanya,
    pada bagian:

    app.get(“/book/:id”, function (req, res) {

    Book.find({“_id”:req.params.id}, function(err, books)
    })

    });
    jika saya mau menggunakan dua parameter dalam melakukan pemanggilan data apakah bisa dilakukan seperti ini?

    app.get(“/book/:id&&:pass”, function (req, res) {

    Book.find({$and:[{“_id”:req.params.id},{“pass”:req.params.pass}]},function(err,books)
    })

    });

    terima kasih

Leave a Reply to jokow Cancel reply

Your email address will not be published. Required fields are marked *