npm init -y
npm install sequelize
const Sequelize = require('sequelize');
- 配置連接信息:
- 第一個參數:要操作的數據庫名稱
- 第二個參數:數據庫用戶名
- 第三個參數:數據庫密碼
- 第四個參數:其它的配置信息
const sequelize = new Sequelize('bntang', 'root', 'root', {
// MySQL服務器地址
host: '127.0.0.1',
// MySQL服務器端口號
port: 3306,
// 注意點: Sequelize不僅僅能操作MySQL還能夠操作其它類型的數據庫
// 告訴Sequelize當前要操作的數據庫類型
dialect: 'mysql',
// 連接池
pool: {
// 最多有多少個連接
max: 5,
// 最少有多少個連接
min: 0,
// 當前連接多久沒有操作就斷開
idle: 10000,
// 多久沒有獲取到連接就斷開
acquire: 30000,
}
});
字段說明常用屬性
字段名稱 |
作用 |
type |
字段類型 |
primaryKey |
是否是主鍵 |
autoIncrement |
是否自動增長 |
allowNull |
是否允許為空 |
unique |
是否必須唯一 |
defaultValue |
默認值 |
額外配置常用屬性
字段名稱 |
作用 |
timestamps |
是否自動添加 createdAt / updateAt 字段 |
freezeTableName |
是否禁止自動將表名修改為復用 |
tableName |
是否自定義表名 |
indexes |
指定索引 |
// 指定索引
indexes: [
{
// 索引名稱
name: '',
// 索引字段名稱
fields: [''],
}
]
- 使用
sequelize
的 define
方法即可創建
- 下面先對參數進行說明:
- 第一個參數:用於指定
表的名稱
- 第二個參數:用於指定
表中有哪些字段
- 第三個參數:用於配置
表的一些額外信息
- 🐤注意點:
Sequelize
在根據模型創建表的時候, 會自動將我們指定的表的名稱變成復數
Sequelize
在根據模型創建表的時候, 會自動增加兩個字段 createAt
/ updateAt
let User = sequelize.define('user', {
id: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true
},
name: {
// varchar(255)
type: Sequelize.STRING,
allowNull: false,
unique: true
},
age: {
type: Sequelize.TINYINT,
defaultValue: 66
},
gender: {
type: Sequelize.ENUM(['男', '女', '妖']),
defaultValue: '妖'
}
}, {// 告訴 sequelize 不需要自動將表名變成復數
freezeTableName: true,
// 自定義表名
// tableName: 'student',
// 不需要自動創建 createAt / updateAt 這兩個字段
timestamps: false,
// 指定索引
indexes: [
{
// 索引名稱
name: 'idx_age',
// 索引字段名稱
fields: ['age'],
}
]
});
- 注意點
- 默認定義好一個模型之后並不會自動創建對應的表
- 我們需要通過調用連接對象的
sync
方法來執行同步
- 只有同步之后才會自動根據模型創建對應的表
sequelize.sync();