Penggunaan Sequelize ORM di Express JS

Blog Sep 13, 2020

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
source: masb0ymas

By default akan otomatis ngebikin folder :

  1. config
  2. models
  3. migrations
  4. 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
source: masb0ymas

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
source: masb0ymas

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 ).

source: masb0ymas

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
source: masb0ymas

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 :

  1. https://www.codepolitan.com/mengapa-menggunakan-orm-dalam-membuat-aplikasi-android-59d5a3928887e
  2. https://sequelize.org/master/manual/getting-started.html
  3. https://sequelize.org/master/manual/migrations.html

Tags

N. Fajri

Hi, I'm a Full Stack Developer from Indonesia, currently, I'm a working on Nusantech. Beside's programming, I enjoy eating food and traveling. I like to explore new things related to technology.

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.