Hi guys,
Salam sejahtera bagi kita semua.
Hari ini gw akan sedikit memberikan tutorial sedikit mengenai sequelize ORM. Jadi tutorial kali ini adalah lanjutan untuk tutorial sebelumnya. Jadi sebelum melanjutkan ke tutorial ini, alangkah baiknya kalian sudah mencoba terlebih dahulu tutorial yang lalu. Tetapi kalau sudah jago ya gapapa, bisa langsung lanjut ke tutorial ini.
Nah yang disini gw akan ajarkan hanyalah tutorial dasar untuk simple query. Nantinya gw akan buatkan tutorial lanjutan untuk bagian migration dan juga advanced query. Untuk lebih jelasnya langsung saja ke tutorialnya.
Berikut step by stepnya:
- Periksa file index.js yang ada di dalam folder tutorial/migrate/mysql/models. Nah di tutorial sebelumnya gw sempet bilang bahwa gw gatw fungsi file ini. Jadi fungsi ini seperti wrapper untuk model-model yang digenerate oleh sequelize-cli nantinya. Nah untuk lebih jelasnya berikut snippet codenya.
12345678910111213141516171819202122232425262728293031323334353637const fs = require('fs');const path = require('path');const Sequelize = require('sequelize');const basename = path.basename(module.filename);const environment = process.env.NODE_ENV || 'development';const mysqlConfig = require('../../config/mysql.json');const db = {};const sequelize = new Sequelize(mysqlConfig[environment].database,mysqlConfig[environment].username,mysqlConfig[environment].password,{logging: mysqlConfig[environment].logging,host: mysqlConfig[environment].host,});fs.readdirSync(__dirname).filter(function(file) {return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js');}).forEach(function(file) {var model = sequelize['import'](path.join(__dirname, file));db[model.name] = model;});Object.keys(db).forEach(function(modelName) {if (db[modelName].associate) {db[modelName].associate(db);}});db.sequelize = sequelize;db.Sequelize = Sequelize;module.exports = db;
123456789101112const environment = process.env.NODE_ENV || 'development';const mysqlConfig = require('../../config/mysql.json');const db = {};const sequelize = new Sequelize(mysqlConfig[environment].database,mysqlConfig[environment].username,mysqlConfig[environment].password,{logging: mysqlConfig[environment].logging,host: mysqlConfig[environment].host,}); - Kalau sudah oke, maka kita lanjutkan ke bagian file yang akan menggunakan models. Berikut snippet codenya.
12345678910111213141516171819202122232425262728293031323334353637383940const models = require('./mysql/models');models.books.findAll().then((results) => {console.log('=================== FIND ALL ==================================');for (let i = 0; i < results.length; i += 1) {console.log(results[i].dataValues);}});models.books.findById('2').then((result) => {console.log('=================== FIND BY ID ==================================');console.log(result.dataValues);});models.books.findOne({where: {book_name: 'Pattern and Principle DDD',},}).then((result) => {console.log('===================== FIND BY FIELD ================================');console.log(result.dataValues);});models.books.findAll({where: {book_name: {$like: '%od%',},},order: [['book_name', 'DESC']],}).then((results) => {console.log('===================== FIND ALL USING LIKE AND ORDER BY ================================');for (let i = 0; i < results.length; i += 1) {console.log(results[i].dataValues);}});Pertama adalah require modelnya terlebih dahulu. Kenapa tidak langsung require file books.js? Karena kita akan menggunakan wrapper index.js untuk memanggil file books.js.
Untuk yang selanjutnya adalah query sequelize dengan ORM. Untuk hasilnya adalah sebagai berikut.
Sequelize ORM
Sequelize ORM
Demikian tutorial simple kali ini. Mungkin menurut beberapa orang ini terlalu simple, tapi bagi yang baru belajar ini udah cukup merepotkan sih hehe. Nantikan tutorial lanjutannya ya. Untuk mencoba sendiri silahkan fork disini.