CRUD Sederhana dengan Node.js, Express, dan MongoDB

Hendrico Kristiawan
4 min readMar 20, 2022

--

Operasi Create, Read, Update, dan Delete atau yang biasa disebut CRUD merupakan hal yang penting dalam membuat website. Dengan kalian sudah mengerti hal tersebut, maka dipastikan kalian dapat membuat website sederhana. Pada tutorial ini, saya akan mencontohkan bagaimana cara membuat CRUD sederhana dengan menggunakan Express sebagai framework dan MongoDB sebagai database. Pada tutorial ini juga saya akan menjelaskan mengenai hal-hal yang dapat mempermudah kalian dalam mengerti bagaimana proses tersebut dapat terjadi.

Prasyarat

Terdapat beberapa prasyarat yang harus dipenuhi agar dapat melakukan tutorial ini.

  • Sudah menginstall Node.js
  • Memiliki akun pada MongoDB
  • Sudah menginstall postman

Membuat App Express JS

Langkah pertama tentu saja membuat folder kosong dengan nama proyek yang akan dikerjakan. Karena pada tutorial ini saya ingin membuat CRUD untuk profil, maka saya akan menamai projek ini ProfilCRUD. Setelah itu masuk ke dalam folder tersebut dan jalankan perintah berikut pada terminal untuk membuat app Node.

npm init -y

Kode ini akan secara otomatis membuat app dengan aturan bawaan. Jika ingin mengubah aturan, kalian dapat menggunakan perintah npm init dan akan diminta beberapa input yang perlu diisi atau diabaikan.

Menginstal dependensi

Agar kita dapat melakukan CRUD, terdapat beberapa dependensi yang perlu digunakan. Yaitu,

  1. express
    Karena kita menggunakan framework express, tentu saja kita perlu menginstal express.
  2. body-parser
    Kita membutuhkan body-parser agar json yang dikirimkan dapat diolah.
  3. mongoose
    Dependensi ini digunakan agar kita dapat terhubung dengan MongoDB Atlas.
  4. nodemon
    Dengan menggunakan nodemon, app akan otomatis dijalankan ulang ketika kita membuat perubahan.

Sehingga perintah yang selanjutnya perlu diberikan pada terminal sebagai berikut.

npm install express body-parser mongoose nodemon --save

Setelah itu kita menambahkan potongan kode berikut ke dalam file package.json yang sudah ada pada bagian scripts. Sehingga file package.json akan menjadi seperti ini.

Membuat app berjalan

Setelah semua hal diatas tersebut berhasil dijalankan, maka selanjutnya adalah membuat agar app kita dapat berjalan. Buatlah sebuah file bernama app.js yang akan dijalankan ketika kita memanggil npm run start .

Terdapat tambahan yang perlu dibahas yaitu pada bagian database. Uri database tersebut dapat kalian dapatkan ketika kalian ingin terhubung dengan cluster pada MongoDB atlas. Namun untuk pengaturan seperti username atau password dapat kalian atur pada bagian database access.

Pada tahap ini kalian sudah dapat menjalankan app tersebut dengan perintah npm run start. Jika pengaturan kalian sudah benar, maka log yang diberikan seperti ini.

> profilcrud@1.0.0 start
> nodemon app.js
[nodemon] 2.0.15
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,json
[nodemon] starting `node app.js`
server sudah menyala pada port 3000
Berhasil terkoneksi dengan MongoDB

Membuat route

Karena kita ingin membuat CRUD untuk profil, maka kita perlu membuat route tersendiri untuk profil. Hal tersebut dapat kita mulai dengan membuat folder routes dan membuat file profil.js pada folder tersebut.

Setelah membuat file tersebut, selanjutnya menambahkan 2 line pada app.js. Yaitu,

const profilRoute = require(‘./routes/profil’)

Potongan kode ini diletakkan pada bagian import yaitu diawal-awal kode.

app.use(‘/profil’, profilRoute)

Selanjutnya potongan kode ini diletakkan pada bagian route. Kode ini digunakan agar ketika menerima route “/profil”, maka route tersebut akan dilanjutkan ke profilRoute atau route yang kita buat tadi.

Membuat model

Karena kita menggunakan database, maka tentu saja kita membutuhkan model agar dapat disimpan pada database. Sehingga kita perlu membuat folder lagi bernama models dan file bernama profil.js.

<script src=”https://gist.github.com/IoriU/9f88c9faf92d228aafb52e7d35fc67f6.js"></script>

Kalian dapat membuat model sesuai dengan keinginan kalian. Namun pada tutorial ini hanya terdapat 3 atribut dan 1 atribut yang unique atau tidak bisa memiliki nilai yang sama dengan objek yang lain.

Setelah membuat file tersebut, langkah selanjutnya adalah menambahkan 1 line kode import ke dalam file routes/profil.js agar dapat mengunakan model tersebut pada route profil.

const Profil = require(‘../models/profil’);

Membuat CRUD

Sekarang sampailah kita ke langkah yang dinantikan. Yaitu membuat CRUD dari model profil yang sudah kita buat. Maka hal yang pertama kita buat adalah Create.

Pada file routes/profil.js, kita cukup menambahkan kode ini.

router.post(‘/create’, async(req,res)=>{ 
const newProfil = new Profil(req.body);
const savedProfil = await newProfil.save()
res.json(savedProfil)
})

Fungsi itu akan dijalankan jika route yang diberikan adalah profil/create dengan metode HTTP post. Fungsi itu akan membuat objek profil dari json yang kita kirimkan lalu menyimpannya pada MongoDB dan mengirim kembali hasil yang disimpan dalam bentuk json. Berikut adalah contoh request yang dikirimkan dengan postman.

Selanjutnya untuk Read kita dapat menggunakan fungsi yang sudah ada pada MongoDB untuk mendapatkan berdasarkan parameter yang kita inginkan. Pada kode berikut, saya menggunakan kode berikut agar bisa mendapatkan email yang bernilai sama dengan route yang diberikan.

router.get(‘/:email’, async (req, res) => {
const profil = await Profil.findOne({email: req.params.email});
res.json(profil);
});

Selanjutnya untuk Update dan Delete tidak jauh berbeda dengan Read yang sudah dibuat.

  • Update
router.put('/:email', async (req, res) => {
await Profil.updateOne({email: req.params.email},
{$set: req.body});
const profil = await Profil.findOne({ email: req.params.email});
res.json(profil);
});
  • Delete
router.delete('/:email', async (req, res) => {
const result = await Profil.findOneAndDelete({email:
req.params.email});
res.json(result);
});

Untuk update dan delete, kalian bisa coba-coba sendiri dengan postman. Jika kalian sudah dapat melakukan tutorial tersebut, maka kalian sudah bisa membuat website sederhana kalian sendiri yang memiliki CRUD. Untuk projek tutorial yang sudah selesai, dapat kalian lihat disini.

--

--