Node == Sequelize 使用文档

目录

1. 简介

2. 安装

3. 连接到数据库

4. 测试连接

5. 关闭连接

6. 模型(Model)

define.sync({ force: true });

belongsTo

paranoid

7. 增删改查(CRUD)

7.1 查询(Query)

7.2 插入(Create)

7.3 更新(Update)

7.4 删除(Delete)

7.5 软删除 (restore) 

7.6 分页 (findAndCountAll)

7.7 查找单条(findOne) 

7.8 主键查询 (findByPk)

8. 实例方法

increment

reload

save

Sequelize 的 Op 对象

opt.and

opt.in


1. 简介

Sequelize 是一个基于 promise 的 Node.js ORM(对象关系映射器),支持多种数据库,包括 Postgres、MySQL、MariaDB、SQLite 以及 Microsoft SQL Server。它提供了强大的事务支持、关联关系、预读和延迟加载、读取复制等功能。

2. 安装

Sequelize 的使用可以通过 npm (或 yarn).

npm install --save sequelize

你还必须手动为所选数据库安装驱动程序:

3. 连接到数据库

要连接到数据库,需要创建一个 Sequelize 实例。这可以通过传递连接参数到 Sequelize 构造函数,或通过传递一个连接 URI 来完成:

const { Sequelize } = require('sequelize');

// 方法 1: 传递一个连接 URI
const sequelize = new Sequelize('sqlite::memory:'); // Sqlite 示例
const sequelize = new Sequelize('postgres://user:pass@example.com:5432/dbname'); // Postgres 示例

// 方法 2: 分别传递参数
const { Sequelize } = require("sequelize");
const {
  MYSQL_HOST,
  MYSQL_PORT,
  MYSQL_USER,
  MYSQL_PWD,
  MYSQL_DB,
} = require("../config/config.default");

// 创建数据库实例(数据库名, 用户名, 密码, 配置)
const seq = new Sequelize(MYSQL_DB, MYSQL_USER, MYSQL_PWD, {
  host: MYSQL_HOST, // 数据库地址
  dialect: "mysql", // 数据库类型
});

Sequelize 构造函数接受许多参数,具体可以查看 API 参考。

4. 测试连接

使用 .authenticate() 方法测试连接是否成功:

// 测试数据库连接;
seq
  .authenticate()
  .then(() => {
    console.log(MYSQL_DB, MYSQL_USER, MYSQL_PWD, MYSQL_HOST, "数据库连接成功");
  })
  .catch((err) => {
    console.log("数据库连接失败", err);
  });

5. 关闭连接

默认情况下,Sequelize 会保持连接打开状态。如果需要关闭连接,可以调用 sequelize.close() 方法。注意,一旦调用 sequelize.close(),就无法再打开新的连接,需要创建一个新的 Sequelize 实例来重新访问数据库。

6. 模型(Model)

模型是 Sequelize 中的一个核心概念,它定义了数据库中的表结构。以下是如何定义一个模型的示例:

define.sync({ force: true });

在 Sequelize 中,.define 方法用于定义模型,而 .sync 方法用于将模型同步到数据库。.sync({ force: true }).sync 方法的一个选项,它的作用是强制同步模型到数据库。这意味着如果数据库中已经存在同名的表,Sequelize 将会删除该表,并根据模型的定义重新创建。这会导致表中所有数据的丢失,因此这个操作是非常危险的,通常只在开发环境中使用,或者在完全了解可能的后果时使用。

belongsTo

belongsTo 是 Sequelize 中定义模型关联关系的一个方法,用于表示一个模型属于另一个模型。例如,如果一个博客文章(Post)属于一个用户(User),则可以使用 belongsTo 在 Post 模型中定义这种关系。这样,每个 Post 实例都会与一个 User 实例相关联,并且可以通过这个关系访问 User 的信息。

在 Sequelize 中,使用 belongsTo 时,会自动在关联的模型中创建一个外键,这个外键指向被关联模型的主键。例如,如果 Post 模型 belongsTo User 模型,Sequelize 会在 Post 表中创建一个 userId 字段,这个字段是 User 表的主键的外键。

  async getCartList(pageNum, pageSize) {
    // 分页
    const { count, rows } = await Cart.findAndCountAll({
      attrib
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端 贾公子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值