Sequelize 简介
Sequelize 是一个基于 promise 的 Node.js ORM, 目前支持 Postgres, MySQL, MariaDB, SQLite 以及 Microsoft SQL Server. 它具有强大的事务支持, 关联关系, 预读和延迟加载,读取复制等功能。
Sequelize 遵从 语义版本控制。 支持 Node v10 及更高版本以便使用 ES6 功能。
请通过 Getting started - 入门 来学习更多相关内容. 如果你想要学习 Sequelize API 请通过 API 参考 (英文)。
核心概念
- Getting Started - 入门
- Model Basics - 模型基础
- Model Instances - 模型实例
- Model Querying - Basics - 模型查询(基础)
- Model Querying - Finders - 模型查询(查找器)
- Getters, Setters & Virtuals - 获取器, 设置器 & 虚拟字段
- Validations & Constraints - 验证 & 约束
- Raw Queries - 原始查询
- Associations - 关联
- Paranoid - 偏执表
高级关联概念
- Eager Loading - 预先加载
- Creating with Associations - 创建关联
- Advanced M:N Associations - 高级 M:N 关联
- Association Scopes - 关联作用域
- Polymorphic Associations - 多态关联
其它主题
- Dialect-Specific Things - 方言特定事项
- Transactions - 事务
- Hooks - 钩子
- Query Interface - 查询接口
- Naming Strategies - 命名策略
- Scopes - 作用域
- Sub Queries - 子查询
- Other Data Types - 其他数据类型
- Constraints & Circularities - 约束 & 循环
- Extending Data Types - 扩展数据类型
- Indexes - 索引
- Optimistic Locking - 乐观锁定
- Read Replication - 读取复制
- Connection Pool - 连接池
- Working with Legacy Tables - 使用遗留表
- Migrations - 迁移
- TypeScript
- Resources - 资源
- Upgrade to v6 - 升级到 V6
简单示例
const { Sequelize, Model, DataTypes } = require('sequelize');
const sequelize = new Sequelize('sqlite::memory:');
class User extends Model {}
User.init({
username: DataTypes.STRING,
birthday: DataTypes.DATE
}, { sequelize, modelName: 'user' });
(async () => {
await sequelize.sync();
const jane = await User.create({
username: 'janedoe',
birthday: new Date(1980, 6, 20)
});
console.log(jane.toJSON());
})();