Baru di ORM Node.js? Coba Sequelize

Indra Bayu
SkyshiDigital
Published in
3 min readAug 28, 2018
https://i.ytimg.com/vi/RA7Du-cj1DA/maxresdefault.jpg

So bagi kalian yang baru masuk ke dalam project Node.js atau bagi kalian yang masih belum menggunakan ORM dalam project yang kalian kerjakan. Artikel ini akan membahas penggunaan ORM Sequelize yang paling sederhana dalam penerapan yang pernah saya lakukan.

Sebelum masuk ke penggunaan mungkin kalian bertanya — tanya, apa sih ORM itu, ya kalau cuma kepanjangan dari ORM sih Object Relational Mapping, coba mulai diartikan dari kepanjangannya, mungkin kalian akan tahu apa itu ORM.

Nah setelah memahami dari kepanjangan ORM, mari kita lihat dari sumber di internet yang saya dapatkan dari wiki, bahasan di stackoverflow, artikel ini dan ini. Kesimpulan yang saya dapat dari beberapa sumber di atas, ORM adalah sebuah teknik untuk mengubah data dari database ke dalam object yang sesuai dengan bahasa yang dipakai, sehingga mudah untuk digunakan.

Masuk ke dalam konsep RESTful API, tahap ini adalah tahap pembuatan sebuah model, untuk memudahkan inisiasi project silahkan bisa menggunakan tool yang sudah ada, framework yang saya gunakan di sini adalah express, kalian juga bisa menggunakan express-generator untuk penggunaan dari tools tersebut bisa kalian cari di internet.

Setelah project ter-inisiasi selanjutnya adalah melakukan instalasi sequelize menggunakan command untuk npm: npm install --save sequelize sequelize-cli mysql2 karena pada project ini saya menggunakan database mysql, dan untuk yarn: yarn add sequelize sequelize-cli mysql2, fungsi dari sequelize-cli di sini adalah untuk mempermudah pembuatan file migrasi, seeder, dll. — Note : saya memakai yarn —

Langkah pertama adalah melakukan inisiasi project menggunakan sequelize dengan command node_modules/.bin/sequelize init dan akan terbentuk folder migrations, seeders, models dan config, namun karena saya tidak suka dengan susunan folder yang seperti itu, sebelum melakukan inisialisasi saya kelompokkan dengan menggunakan file .sequelizerc dengan code sebagai berikut, sehingga folder yang ada masuk ke dalam sebuah folder database dan config.

Sebelum melanjutkan ke langkah selanjutnya, kalian harus melakukan pengubahan pada file migrationConfig.js dan membuat sebuah file index.js di dalam folder config, dengan masing-masing file sebagai berikut:

Pada file index.js di atas adalah pengaturan yang digunakan dalam project yang kita sedang kerjakan, terdapat nama database sequelize_train itu berarti harus ditambahkan secara manual di dalam database yang kemudian bisa kita gunakan untuk project ini.

Pada file migrationConfig.js bukan menambahkan baris code tersebut melainkan mereplace semua isi migrationConfig.js, kemudian buat file migrasi untuk (sebagai contoh — table Users) membuat sebuah table di database dengan menggunakan command node_modules/.bin/sequelize migration:generate --name create-users-table dan file migrasi akan ter-create di dalam folder migrations kemudian edit file tersebut sesuai dengan attribut yang diinginkan. Untuk file yang saya buat adalah seperti di bawah:

Kemudian jalankan command ini node_modules/.bin/sequelize db:migrate untuk menjalankan semua file migration yang telah dibuat, dalam kasus ini satu file create-users-table.js, setelah berhasil pada command line kemudian pastikan tabel benar-benar ada cek pada database.

Langkah selanjutnya adalah membuat file seeders, yaitu memasukkan data default agar database tidak dalam keadaan kosong, biasanya digunakan untuk memasukkan data yang digunakan untuk login pertama kali, atau data yang digunakan pertama saat inisialisasi project. Masukkan command node_modules/.bin/sequelize seed:generate --name users-table-seeders maka akan ada file baru pada folder database/seeders kemudian edit sesuai dengan field yang dibuat saat migrasi.

Setelah itu lakukan command node_modules/.bin/sequelize db:seed:all kemudian check ke dalam database maka akan ada satu data dari hasil seeding.

Kemudahan seperti hal di atas akan sangat membantu untuk mempercepat pengerjaan project. Lebih lanjut mengenai penggunaan sequelize akan dipost pada artikel selanjutnya, seperti penggunaan dalam model serta cara memakai untuk dikombinasikan dengan controller.

--

--