Sequelize.js 中文 API

阅读时长 5 分钟读完

Sequelize.js 是一个基于 Node.js 的 ORM(Object-Relational Mapping),用于将对象与关系数据库之间的映射,使代码可以更直观地操作数据库,而不需要写出与数据库语言相似的 SQL 语句。它支持多种主流数据库,如 MySQL、PostgreSQL、SQLite 等等,并提供许多强大的功能和 API 接口。

安装和使用

要使用 Sequelize.js,你需要首先安装它。你可以使用 npm 安装它:

然后,你可以引入 Sequelize.js 模块并创建一个 Sequelize 实例:

其中,database 是你的数据库名称,usernamepassword 是你的登录凭证。这里我们使用 MySQL 作为示例数据库,你还可以将 dialect 设置为其他数据库类型,如 postgressqlite

接着,你可以定义一个模型,用于映射数据库表。模型类似于对象,包含了一些属性和方法,可以方便地对数据库表进行操作。例如:

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

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

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

上面的代码定义了一个名为 user 的模型,它有一个 firstName 属性和一个可选的 lastName 属性。DataTypes.STRING 表示该属性类型为字符串,allowNull 表示不允许为空。然后,我们使用 User.init() 方法来告诉 Sequelize 使用我们的模型定义。

查询和更新

一旦你定义了模型,你就可以使用 Sequelize 提供的各种方法来操作模型和数据库。例如,要查询数据库中的记录,你可以使用 find 方法:

这将返回一个 Promise,完成后将返回一个 user 对象,其中包含数据库中第一条记录的数据。你还可以使用 findAll() 方法来查找多条记录。

要更新数据库中的记录,你可以使用 update 方法:

这将更新所有名字为 旧的名字 的记录的 firstName 属性为 新的名字update 方法返回一个 Promise,完成后将返回更新的记录数。

关联和约束

除了查询和更新数据,Sequelize 还支持许多高级功能,如关联和约束。关联用于建立数据库表之间的联系,例如一个用户有多个订单,订单可以属于多个用户。在 Sequelize 中,你可以在模型定义中使用 hasManybelongsTo 方法来定义关联关系。例如:

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

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

在上面的代码中,我们定义了一个 User 模型和一个 Order 模型,它们之间存在 1:n 的关联关系。User 模型使用了 hasMany 方法,表示一个用户可以有多个订单;Order 模型使用 belongsTo 方法,表示一个订单必须属于某个用户。

另外,我们还可以使用约束来限制数据库表中数据的合法性。例如,你可以定义一个模型并添加一些字段验证器:

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

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

上面的代码定义了一个名为 task 的模型,它有一个 title 属性和一个可选的 desc 属性。title 属性不能为空,且长度必须在 3-32 个字符之间,否则将返回对应的错误消息。

总结

Sequelize.js 是一个非常有用和强大的 ORM,它可以大大简化前端开发过程中与数据库相关的任务。通过本文,你已经了解了如何安装和使用 Sequelize.js,以及如何定义模型、查询和更新数据、定义关联和约束等常用的功能和 API 接口。希望这篇文章对你有所帮助,可以让你更轻松地开发出高质量的前端应用程序!

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

纠错
反馈