Penggunaan Sequelize ORM di Express JS
Hallo temen-temen semua, pada kesempatan kali ini aku akan menjelaskan gimana cara install sequelize orm dan menggunakannya pada Framework Express JS. Kita bahas dulu apa itu ORM (Object Relationship Mapping) dan cara menggunakan Sequelize ORM.
ORM adalah suatu metode/teknik pemrograman yang digunakan untuk mengkonversi data dari lingkungan bahasa pemrograman berorientasi objek (OOP) dengan lingkungan database relasional, ORM tersebut bertugas sebagai penghubung dan sekaligus mempermudah kita dalam membuat aplikasi yang menggunakan database relasional agar menjadikan tugas kita lebih efisien.
Sequelize is a promise-based Node.js ORM for Postgres, MySQL, MariaDB, SQLite and Microsoft SQL Server. It features solid transaction support, relations, eager and lazy loading, read replication and more.
Kamu juga bisa baca bagaimana cara setup express js
Setup Sequelize
Setelah kamu selesai setup express js nya, kita akan lanjut pada tahap install sequelize dan sequelize-cli dengan command berikut
npm install --save sequelize
or
yarn add sequelize
Lanjut install database driver nya
# One of the following:
npm install --save pg pg-hstore # Postgres
npm install --save mysql2
npm install --save mariadb
npm install --save sqlite3
npm install --save tedious # Microsoft SQL Server
Lalu install sequelize-cli nya di dev dependencies
npm install --save-dev sequelize-cli
or
yarn add -D sequelize-cli
Kita juga bisa bikin project bootstrapping dari sequelize nya.
Jalankan command berikut untuk bikin project bootstrapping
npx sequelize-cli init

By default akan otomatis ngebikin folder :
- config
- models
- migrations
- seeders
Nah disini kita juga bisa mengarahkan folder dari bootstrapping nya, dengan menggunakan .sequelizerc . Jadi ketika menjalankan sequelize-cli, dia akan otomatis ngebaca file config sequelize nya tersebut.
Yang perlu di perhatikan disini ialah config/config.json nya, by default config nya akan di arahkan ke env development. Kamu menyesuaikan config koneksi ke database nya. Sebagai contoh seperti ini
{
"development": {
"username": "root",
"password": null,
"database": "latihan_express",
"host": "127.0.0.1",
"dialect": "mysql"
},
...
}
Setelah kamu menyesuaikan confignya, jalankan command db:create untuk membuat database sesuai dengan yang ada di config.
npx sequelize-cli db:create

Membuat Model dan Migrations
Kamu bisa membuat model dan migrations sekaligus dengan sequelize-cli berikut
npx sequelize-cli model:generate --name User --attributes nama:string,email:string,password:string

Command model:generate akan membuat file di folder model dan migration sekaligus, --name ( untuk mendefinisikan nama tabel yang di akses oleh modelnya ), --attributes ( untuk mendefinisikan nama field pada tabelnya ).

Dengan menjalankan command db:migrate ini memungkinkan membuat table di database sesuai dengan yang kita atur tadi di folder migrationnya.
npx sequelize-cli db:migrate
Membuat Seeders
Ketika kamu membutuhkan data yang bersifat konstant dalam artian gk akan berubah-ubah, kamu bisa membuat seedernya ( initial record value ).
Jalankan command berikut untuk ngegenerate seeder nya
npx sequelize-cli seed:generate --name initial-user

Pada tahap ini, kita harus membuat manual input terlebih dahulu sebelum di jalankan command db:seed nya
'use strict';
module.exports = {
up: async (queryInterface, Sequelize) => {
return queryInterface.bulkInsert('Users', [{
nama: 'Admin',
email: '[email protected]',
password: 'adminpass',
createdAt: new Date(),
updatedAt: new Date()
}]);
},
down: async (queryInterface, Sequelize) => {
/**
* Add commands to revert seed here.
*
* Example:
* await queryInterface.bulkDelete('People', null, {});
*/
}
};
seeder diatas sebagai contoh saja, pada field password seharusnya di bcyrpt, kamu bisa ngaturnya di model user sebelum di insert ke database menggunakan hooks.
Setelah selesai bikin seeder initial-user nya, lanjut jalankan command db:seed atau db:seed:all
npx sequelize-cli db:seed:all
Conclusion
ORM sangat ngebantu programmer dalam ngemapping data dari database dsb. Sequelize ORM ialah promise ORM base NodeJS. Sequelize juga banyak support driver database seperti mysql, mariadb, postgresql, dll.
Serta juga dipermudah dengan sequelize-cli kita gk perlu ribet lagi bikin tabel manual 1/1, yang kita butuhkan hanya mendefinisikan model dan migrationnya lalu migrate menggunakan command db:migrate. Serta kita juga bisa membuat seeder dengan mudah.
Referensi
Artikel diatas dikutip dari beberapa sumber :