- 介绍
本文主要介绍在 Express.js 中如何使用 Sequelize.js 进行 ORM 映射。Sequelize.js 是一个基于 Node.js 的 ORM(Object-Relational Mapping)库,它提供了对 MySQL、PostgreSQL、SQLite 和 MSSQL 等不同数据库的支持。
- 安装
在项目中通过 npm 安装 Sequelize.js 和对应的数据库驱动:
--- - ------ --------- ------ - --- ----- --- - ------ --------- ------- - --- ------ --- - ------ --------- -------- - --- ---------- --- - ------ --------- ------- - --- -----
- 配置
在 Express 项目中,我们创建一个 sequelize 对象,用于连接数据库:
----- - --------- - - --------------------- ----- --------- - --- --------------------- ----------- ----------- - ----- ------------ -------- -------- ---
其中,database、username 和 password 分别为数据库名称、用户名和密码。dialect 指定了我们将要使用的数据库类型,这里使用 MySQL。
- 定义模型
在 Sequelize 中,我们使用模型来表示数据库中的表,每个模型对应一个表,每个属性对应表中的一个字段。我们可以通过定义模型来进行增删改查等操作。
以下是一个 User 模型的示例:
----- - --------- - - --------------------- ----- ---- - ------------------------ - -- ------ ----- - ----- ----------------- ---------- ------ -- ------ - ----- ----------------- ---------- ------ ------- ----- -- --------- - ----- ----------------- ---------- ------ -- --- -- -------- ------------
这个模型定义了一个 Users 表,包含三个字段:name、email 和 password。每个字段包含数据类型和是否允许为空等信息。User.sync() 将模型同步到数据库中。
- 查询数据
通过定义好的模型,我们可以使用一些 Sequelize 提供的查询方法快速进行查询。
例如:
--------------------------- -- - ------------------- ---
findAll() 方法用于查询表中的所有数据。查询结果以 Promise 形式返回。
- 插入数据
使用已经定义好的模型,我们可以通过 create() 方法很方便地向表中插入数据:
------------- ----- -------- ------ -------------------- --------- --------- --------------- -- - ---------------------------- ---
create() 方法将数据插入到表中,并返回一个包含插入的数据的 Promise 。
- 更新数据
使用 update() 方法更新表中的数据:
------------ - ----- ----- -- - ------ - ----- -------- -- - ------------ -- - -------------------- ------ ------- ---
update() 方法返回更新的行数。
- 删除数据
使用 destroy() 方法删除表中的数据:
-------------- ------ - ----- -------- -- ------------- -- - -------------------- ------ ------- ---
destroy() 方法返回删除的行数。
- 总结
Sequelize 是一个强大的 ORM 框架,可以很方便地操作多种类型的关系型数据库。在 Express 项目中使用 Sequelize 也非常简单,通过定义好的模型,我们可以轻松进行数据库的增删改查等操作。同时,Sequelize 还提供了许多高级功能,例如事务、关联查询等。我们可以根据需要自定义模型,实现更加复杂的功能。
- 参考文献
- Sequelize 官方文档:https://sequelize.org/
- Express.js 官网:https://expressjs.com/zh-cn/
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6459fbb5968c7c53b0c16fd9