引言
Sequelize ORM 是一个基于 Node.js 的 ORM 框架,它支持多种数据库(包括 MySQL、PostgreSQL、SQLite、Microsoft SQL Server、Oracle 等),并提供了基于 Promise 的 API。
本文主要介绍在 Hapi 应用中如何使用 Sequelize ORM 操作 MySQL 数据库。
安装与配置
首先需要安装 sequelize
和 mysql2
两个包:
npm install sequelize mysql2 --save
然后在 Hapi 应用中初始化 Sequelize:
-- -------------------- ---- ------- ----- --------- - -------------------- ----- --------- - --- ----------- -------- -------- --------- ------- --------- --------- ----- ------------ ----- ----- --------- ------ --
其中,dialect
指定数据库类型,username
、password
、host
、port
和 database
分别是连接数据库的用户名、密码、主机名、端口和数据库名称。
定义模型
定义模型是 Sequelize ORM 的核心部分。在 Hapi 应用中,可以在 server/models
目录下创建相应的模型文件。例如,创建一个名为 user.js
的模型文件:
-- -------------------- ---- ------- -- ------- ----- --------- - -------------------- -------------- - ------------------------ - --- - ----- ------------------ ---------- ------ ----------- ----- -------------- ---- -- ----- - ----- ----------------- ---------- ----- -- ---- - ----- ------------------ ---------- ----- -- ------ - ----- ----------------- ---------- ----- - --
该模型定义了一个名为 user
的表,包含四个字段:id
、name
、age
和 email
。
查询数据
Sequelize ORM 提供了丰富的查询方法,包括 findAll
、findOne
、count
、sum
、max
、min
等。这些方法都返回 Promise 对象,可以通过 then
方法获取查询结果。
以下是查询所有用户的示例代码:
server.route({ method: 'GET', path: '/users', handler: async (request, h) => { const users = await sequelize.models.user.findAll() return users } })
该路由处理程序使用了 async
和 await
关键字,使得异步操作更加简洁明了。
除了使用简单的查询方法,Sequelize ORM 还支持使用原始 SQL 语句进行查询。以下是查询年龄大于 18 的用户的示例代码:
-- -------------------- ---- ------- -------------- ------- ------ ----- ------------------- -------- ----- --------- -- -- - ----- --- - ------------------ ----- ------- --------- - ----- ----------------------- --- ----- ---- ----- ---- ----- ----- --- - -------- ------ ----- - --
该路由处理程序使用 sequelize.query
方法执行原始 SQL 语句,并返回查询结果和元数据。
添加数据
添加数据可以使用模型的 create
方法。以下是添加一个用户的示例代码:
-- -------------------- ---- ------- -------------- ------- ------- ----- --------- -------- ----- --------- -- -- - ----- - ----- ---- ----- - - --------------- ----- ---- - ----- ------------------------------ ----- ---- ----- -- ------ ---- - --
该路由处理程序使用 request.payload
获取 POST 请求的请求体,然后创建一个新的用户并返回。
修改数据
修改数据可以使用模型的 update
方法。以下是修改一个用户的示例代码:
-- -------------------- ---- ------- -------------- ------- ------ ----- -------------- -------- ----- --------- -- -- - ----- -- - ----------------- ----- - ----- ---- ----- - - --------------- ----- ------------------------------ ----- ---- ----- -- - ------ - -- - -- ------ - -------- ---- - - --
该路由处理程序使用 request.params
获取 PUT 请求的参数,然后通过 id 修改相应的用户,并返回一个成功标识。
删除数据
删除数据可以使用模型的 destroy
方法。以下是删除一个用户的示例代码:
-- -------------------- ---- ------- -------------- ------- --------- ----- -------------- -------- ----- --------- -- -- - ----- -- - ----------------- ----- ------------------------------- ------ - -- - -- ------ - -------- ---- - - --
该路由处理程序使用 request.params
获取 DELETE 请求的参数,然后删除相应的用户,并返回一个成功标识。
总结
Sequelize ORM 是一个非常强大的 ORM 框架,它为开发者提供了丰富的 API,使得操作数据库变得更加简单和高效。本文介绍了在 Hapi 应用中如何使用 Sequelize ORM 操作 MySQL 数据库,包括定义模型、查询数据、添加数据、修改数据和删除数据等操作。希望本文对读者有帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/646dd469968c7c53b0c73340