import {Sequelize} from "sequelize";import db from "../config/Database.js";const{DataTypes} = Sequelize;const Users = db.define('users', {}, {freezeTableName : true});export default Users;
Kode tersebut adalah bagian dari model dalam Sequelize, yaitu ORM (Object Relational Mapping) untuk Node.js yang digunakan untuk berinteraksi dengan database SQL seperti MySQL, PostgreSQL, SQLite, dan lainnya. Berikut adalah penjelasan secara rinci:
1. Import Module yang Diperlukan
import { Sequelize } from "sequelize";
import db from "../config/Database.js";
import { Sequelize } from "sequelize";
- Mengimpor objek
Sequelize
dari modul sequelize, yang merupakan pustaka ORM untuk Node.js.
- Mengimpor objek
import db from "../config/Database.js";
- Mengimpor konfigurasi database dari file
Database.js
. File ini biasanya berisi inisialisasi koneksi ke database menggunakan Sequelize.
- Mengimpor konfigurasi database dari file
2. Ekstraksi DataTypes dari Sequelize
const { DataTypes } = Sequelize;
DataTypes
adalah objek bawaan dari Sequelize yang menyediakan berbagai tipe data yang bisa digunakan dalam model. Contoh tipe data yang sering digunakan adalah:DataTypes.STRING
→ untuk menyimpan teksDataTypes.INTEGER
→ untuk angka integerDataTypes.BOOLEAN
→ untuk nilaitrue/false
DataTypes.DATE
→ untuk tanggal dan waktu
3. Mendefinisikan Model Users
const Users = db.define('users', {}, {
freezeTableName : true
});
-
db.define('users', {}, {...})
:- Digunakan untuk mendefinisikan model Users yang akan berhubungan dengan tabel
users
di database. - Argumen pertama
'users'
adalah nama tabel yang akan digunakan dalam database. - Argumen kedua
{}
adalah objek kosong, yang seharusnya berisi skema kolom, tetapi dalam kode ini tidak ada definisi kolom. - Argumen ketiga adalah objek konfigurasi yang berisi opsi tambahan.
- Digunakan untuk mendefinisikan model Users yang akan berhubungan dengan tabel
-
freezeTableName: true
:- Opsional, tetapi sangat penting. Dengan mengaktifkan opsi ini, Sequelize tidak akan mengubah nama tabel secara otomatis (misalnya menambahkan huruf "s" secara default).
- Contoh tanpa
freezeTableName: true
, jika kita menggunakan'user'
, Sequelize akan mengubahnya menjadi'users'
.
4. Ekspor Model
export default Users;
- Mengekspor model
Users
agar bisa digunakan di file lain dalam proyek.
Kesimpulan
Kode ini mendefinisikan model Users menggunakan Sequelize, tetapi tidak memiliki skema kolom yang jelas. Untuk membuat model yang lebih fungsional, sebaiknya tambahkan properti kolom seperti ini:
Kode yang lebih lengkap:
import { Sequelize } from "sequelize";
import db from "../config/Database.js";
const { DataTypes } = Sequelize;
const Users = db.define('users', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true
},
name: {
type: DataTypes.STRING,
allowNull: false
},
email: {
type: DataTypes.STRING,
allowNull: false,
unique: true
},
password: {
type: DataTypes.STRING,
allowNull: false
}
}, {
freezeTableName: true
});
export default Users;
Penjelasan Tambahan
- Menambahkan atribut ke model (id, name, email, password).
- Menentukan
primaryKey
,autoIncrement
,allowNull
, danunique
untuk memastikan validasi yang lebih baik. - Menjadikan
freezeTableName: true
tetap aktif, agar nama tabel tidak diubah otomatis oleh Sequelize.
0 Comments