Sequelize 在 Node.js 中的配置和使用教程

阅读时长 7 分钟读完

前言

Sequelize 是 Node.js 中一个强大的 ORM (对象关系映射)库,它可以方便地将 JavaScript 对象和关系型数据库之间进行相互转换。

在本篇文章中,我们将探讨使用 Sequelize 在 Node.js 中进行数据库操作的配置和使用方法,包括如何连接数据库、定义模型、进行查询等等。

安装 Sequelize

首先,我们需要在 Node.js 项目中安装 Sequelize。使用 npm 命令进行安装:

其中:

  • sequelize 是 Sequelize 库本身;
  • sequelize-cli 是 Sequelize 命令行工具,用于生成数据库迁移文件等;
  • mysql2 是连接 MySQL 数据库时需要的驱动程序。

配置连接

在使用 Sequelize 之前,我们需要配置连接信息。在项目中创建一个 sequelize.js 文件,并写入以下代码:

-- -------------------- ---- -------
----- --------- - --------------------

----- --------- - --- --------------------- ----------- ----------- -
  ----- ------------
  -------- -------
--

----- -------- ---------------- -
  --- -
    ----- ------------------------
    ----------------------- --- ---- ----------- ---------------
  - ----- ------- -
    --------------------- -- ------- -- --- ----------- ------
  -
-

----------------

其中:

  • databaseusernamepassword 分别是你自己的数据库名称、用户名和密码;
  • host 是数据库所在的主机名或 IP 地址;
  • dialect 是数据库的类型,可以是 mysqlpostgressqlitemssql 等。这里我们使用 MySQL。

在上述代码中,我们先创建了一个 Sequelize 对象,并传入连接信息。然后,我们定义了一个异步函数 testConnection,用于测试连接是否成功。在函数内部,我们调用 sequelize.authenticate() 方法进行连接测试。如果连接成功,会输出 Connection has been established successfully.,否则会输出连接错误的详细信息。

执行上述代码后,如果输出连接成功的信息,则说明连接配置正确。

定义模型

在 Sequlize 中,模型是指数据表的定义。我们可以用模型来定义数据表的结构,或者从数据库中读取数据并将其转换为模型实例。

下面是一个简单的模型定义示例,我们定义一个 User 模型:

-- -------------------- ---- -------
----- --------- - --------------------

----- --------- - --- --------------------- ----------- ----------- -
  ----- ------------
  -------- -------
--

----- ---- - ------------------------ -
  ---------- -
    ----- -----------------
    ---------- -----
  --
  --------- -
    ----- ----------------
  --
  ---- -
    ----- -----------------
  -
--

----- -------- ----------- -
  ----- ---------------- ------ ---- --
  ----- ---- - ----- -------------
    ---------- -------
    --------- ------
    ---- --
  --
  --------------------------
-

-----------

上述代码中,我们创建了一个 User 模型,其中包含三个字段:firstNamelastNameage。分别表示用户的名、姓和年龄。其中 firstName 是必填的,其他字段是可选的。

然后,我们定义了一个异步函数 testModel,在函数内部,我们调用了 sequelize.sync() 方法来同步数据库,并强制删除现有的数据。然后,我们使用 User.create() 方法创建了一个新的用户实例,并输出了其 JSON 格式的表示。

执行上述代码后,如果输出了用户实例的 JSON 格式,则说明模型定义成功。

字段类型

在 Sequelize 中,我们可以使用以下数据类型定义模型字段:

  • STRING:字符串类型;
  • INTEGER:整数类型;
  • BOOLEAN:布尔类型;
  • DECIMAL:定点数类型;
  • FLOAT:浮点类型;
  • DATE:日期类型;
  • ENUM:枚举类型;
  • ARRAY:数组类型;
  • ...

更多数据类型请查看 Sequelize 文档。

字段属性

在 Sequelize 中,我们可以使用以下属性来定义模型字段的属性:

  • type:定义字段的数据类型;
  • allowNull:是否允许为空;
  • defaultValue:默认值;
  • autoIncrement:是否自增;
  • unique:是否唯一;
  • primaryKey:是否为主键;
  • references:参考另一个表的字段;
  • ...

更多字段属性请查看 Sequelize 文档。

进行查询

在 Sequelize 中,我们可以使用以下方法来进行查询:

  • findAll():查找表中所有记录;
  • findOne():查找表中第一个满足条件的记录;
  • findByPk():根据主键查找一条记录;
  • count():返回表中记录的数量;
  • sum():计算某个字段的总和;
  • max():计算某个字段的最大值;
  • min():计算某个字段的最小值;
  • avg():计算某个字段的平均值。

下面是一个简单的查询示例,我们使用 User.findAll() 方法查找所有用户记录:

-- -------------------- ---- -------
----- --------- - --------------------

----- --------- - --- --------------------- ----------- ----------- -
  ----- ------------
  -------- -------
--

----- ---- - ------------------------ -
  ---------- -
    ----- -----------------
    ---------- -----
  --
  --------- -
    ----- ----------------
  --
  ---- -
    ----- -----------------
  -
--

----- -------- ----------- -
  ----- ----- - ----- --------------
  --- ------ ---- -- ------ -
    --------------------------
  -
-

-----------

在上述代码中,我们使用 User.findAll() 方法查找所有用户记录,并输出其 JSON 格式表示。

执行上述代码后,如果输出了所有用户的 JSON 格式表示,则说明查询成功。

结尾

在本篇文章中,我们介绍了如何配置 Sequelize 的连接信息、定义模型、进行查询等操作。这些内容只是 Sequelize 库的冰山一角,更多用法和细节请查看 Sequelize 文档。

希望本文能够给你带来一定的启示和帮助,谢谢阅读。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/678324c6935627c9002b0270

纠错
反馈

程序员教程

精选优质教程,助你快速提升技术实力

程序员面试题库

海量优质面试题,助你轻松应对技术面试