Membuat Restfull Api Menggunakan Expressjs, Orm Sequelize dan Mysql Part 1 : Inisiasi Sequelize

Firman
JavaScript Indonesia Community
4 min readOct 13, 2020
Image from Toptal article

Kali ini kita akan membuat sebuah aplikasi restfullapi dengan menggunakan expressjs dan sequelize, fitur-fitur yang akan dibuat yaitu

  1. Inisiasi Sequelize
  2. CRUD and Validation
  3. Login, Registratiron, Validation, and Set JWT
  4. Verify Api With Jwt Using Middleware
  5. Logout and Verify Token Blacklist

Mari kita ngoding — pertama buat folder contoh dengan nama restfull-api-sequelize, setelah itu masuk ke terminal dan arahkan ke direktori projek kita dan ketikan perintah sebagai berikut untuk inisiasi projek kita

$ npm init

setelah selesai menginisiasi projek kita, mari kita install package sequelize dengan perintah sebagai berikut

$ npm install -g npx$ npm install sequelize sequelize-cli mysql2

sebelum melakukan inisiasi konfigurasi sequelizenya teman-teman bisa mengcustom atau bisa menggunakan by default untuk struktur konfigurasinya jika ingin di custom buat file dengan nama .sequelizerc lalu isi dengan code seperti ini

const path = require('path');module.exports = {'config': path.resolve('config', 'migrationConfig.js'),'models-path': path.resolve('database', 'models'),'seeders-path': path.resolve('database', 'seeders'),'migrations-path': path.resolve('database', 'migrations')};

dari kode diatas bisa dilahat saya mengkelompokan folder models, seeders, migrations di dalam folder database langkah selanjutnya kita inisiasi konfigurasi sequelizenya dengan perintah sebagi berikut

$ npx sequelize-cli init
hasil sequelize-cli init

setelah itu mari kita ubah file migrationConfig.js dan membuat sebuah file index.js di dalam folder config dengan code sebagai berikut :

//migrationConfig.jsconst config = require('./index') 
const cfg = {}
cfg[config.environment] = config.sequelizemodule.exports = cfg
// index.jsconst conf = {};conf.environment = 'development';conf.sequelize = {};conf.sequelize.username = ''; //database usernameconf.sequelize.password = ''; //database password kosongkan jika tidak pakai passwordconf.sequelize.database = ''; //isi dengan nama databaseconf.sequelize.host = '127.0.0.1';conf.sequelize.dialect = 'mysql';conf.sequelize.port = 3306;conf.sequelize.define = {charset: 'utf8mb4',dialectOptions: {collate: 'utf8mb4_unicode_ci'}}conf.ROUND_SALT = 8;module.exports = conf;

Membuat file migration dan models, seperti pada orm umumnya sequelize juga menyediakan command untuk generate model dan migration melalui cli dokumentasi lengkapnya disini atau dengan mengetikan perintah sebagai berikut di terminal untuk melihat command-command yang tersedia

$ npx sequelize-cli
list command sequelize-cli
$ npx sequelize-cli model:generate --name Users --attributes username:string,fullname:string,email:string,password:string
schema migration users

teman teman bisa mengubah schema nya sesuai kebutuhan contoh kolom fullname cuma butuh 50 karakter saja tinggal ubah di type: Sequlize.STRING(50) dokumentasi lengkapnya ada disini

lanjut kita akan migrasi model atau tabel yang sudah kita generate tadi dengan perintah sebagai berikut

$ npx sequelize-cli db:migrate

untuk memastikan tabel yang kita buat tadi sudah tercreate di database cek di database kita apakah tabel tersebut sudah ada atau belum buka aplikasi database manager kita seperti phpmyadmin atau lainnya disini saya menggunakan aplikasi DBeaver, contoh tabel sudah terbuat akan ada dua tabel yaitu Sequelizemeta dan Users yang sudah kita definisikan tadi ketika generate model

tabel

membuat seeder, seeder secara singkat yaitu dummy data atau sample data sebuah model contoh disini saya akan memebuat dummy data user dengan perintah sebagai berikut

$ npx sequelize-cli seed:generate — name demo-user

setelah seeder terbuat buka file nya di folder seeder dan edit seperti gambar dibawah ini jangan lupa install dahulu package password hash karena disini saya menggunakan nya untuh hasing password

$ npm install password-hash

function : up ini berfungsi untuk memasukan data ke model users kita saat kita menjalankan perintah npx sequelize-cli db:seed:all sedangkan function : down untuk mengosongklan kembali isi tabel kita saat menjalankan perintah npx sequelize-cli db:seed:undo:all okay mari kita jalankan perintah seednya

$ npx sequelize-cli db:seed:all

setelah dijalankan buka database kita dan cek ke tabel kita apakah data sudah masuk atau belum di script seeder di atas saya memasukan dummy data users hanya 100 data temen2 bisa cutom misalkan mau 200 atau 1000 sesuai keinginan saja

dummy data user

lanjut misalkan kita mau mengosongkan kembali tabel users kita ketikan perintah sebagai berikut

$ npx sequelize-cli db:seed:undo:all

cek kembali di database tabel kita jangan lupa refreh tabel nya dan cek datanya sudah kosong kembali atau belum

mungkin untuk tahap awal sekian dulu tulisan dari saya lanjut nanti PART 2 :)))

source code

https://media.tenor.com/images/217be23d6af58e44d7e0fb48595815bd/tenor.gif

--

--