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();
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具