Hapi.js 是一款非常流行的 Node.js Web 框架,它提供了一系列强大的工具和插件,可以方便地构建 Web 应用程序。在本文中,我们将学习如何使用 Hapi.js 构建一个基础的 CRUD(增删改查)操作功能。
准备工作
在开始本文之前,你需要安装 Node.js 和 npm,以及一些其他的工具:
- Hapi.js
- Joi
- boom
- sqlite3(本文使用的数据库)
在安装完以上工具之后,我们就可以开始构建我们的 CRUD 功能了。
创建一个 Hapi.js 服务器
首先,我们需要创建一个 Hapi.js 服务器实例,并设置一些基本的路由和处理程序。这里,我们使用 Hapi.js 的 server.route()
方法来创建路由和处理程序。
-- -------------------- ---- ------- ----- ---- - ---------------- ----- ------ - ------------- ----- ----- ----- ----------- --- -------------- ------- ------ ----- ---- -------- --------- -- -- - ------ ------- ------- - --- ---------------
在上述代码中,我们创建了一个简单的路由,它将处理根路径请求并返回一条简单的消息。现在,你可以在浏览器中访问 http://localhost:3000
,看到页面上显示了 "Hello, Hapi!" 消息。
连接到数据库
接下来,我们需要将我们的应用程序连接到一个数据库中。在本文中,我们将使用 SQLite3 数据库。首先,我们需要安装 sqlite3 npm 包,并在代码中引入它。
const sqlite3 = require('sqlite3').verbose();
接着,我们需要创建一个 SQLite 数据库实例,并在服务器启动时进行连接。
-- -------------------- ---- ------- ----- -- - --- --------------------------------- ----- -- - -- ----- - --------------------------- - ---------------------- -- --- ------------ --- ------------------------- -- -- - ------------------- ------------- ---
在上述代码中,我们使用 SQLite3 的 Database
类创建一个数据库实例,并将其连接到 ./database.db
数据库文件。我们还通过 server.events.on()
方法监听了服务器启动事件,并打印了一条消息到控制台。
创建表格
接下来,我们需要创建一个表格来存储我们的数据。在 SQLite3 中,我们可以使用 SQL 命令来创建一个表格。
-- -------------------- ---- ------- -------------- ----- -- --- ------ --------- - -- ------- ------- --- -------------- ---- ----- ----- ---- --- ----- -- - -- ----- - --------------------------- - ---------------------- ----- ----------- ---
在上述代码中,我们使用 SQLite3 的 run()
方法执行 SQL 命令来创建一个名为 customers
的表格,并定义了 id
、name
和 email
字段。
实现 CRUD 操作
现在,我们已经准备好实现基本的 CRUD 操作了。我们将使用 Hapi.js 的路由和处理程序来处理这些操作。
查找数据
我们首先要实现的是查询操作。在 Hapi.js 中,我们可以使用 server.route()
方法来设置 GET 请求路由,并使用 SQLite3 的 all()
方法来查询数据库中的数据。
-- -------------------- ---- ------- -------------- ------- ------ ----- ------------- -------- --------- -- -- - ------ --- ----------------- ------- -- - -------------- - ---- ----------- ----- ----- -- - -- ----- - --------------------------- ------------ - -------------- --- --- - ---
在上述代码中,我们使用 Hapi.js 的 server.route()
方法来设置路由和处理程序,当发起 GET 请求 /customers
时,我们使用 SQLite3 的 all()
方法查询 customers
表格,并将查询结果使用 Promise 对象返回。如果查询失败,我们会在控制台输出一条错误信息,并将 Promise 对象 reject。
创建和更新数据
接下来,我们将实现创建和更新数据的操作。在 Hapi.js 中,我们可以使用 server.route()
方法来设置 POST 请求路由,并使用 SQLite3 的 run()
方法来执行 SQL 命令。
-- -------------------- ---- ------- -------------- ------- ------- ----- ------------- -------- --------- -- -- - ----- - ----- ----- - - ---------------- ------ --- ----------------- ------- -- - ----- --- - ------- ---- --------- ------ ------ ------ --- ---- ----------- ------ ------- ----- -- - -- ----- - --------------------------- ------------ - --------- -------- --------- ----- -------------- --- --- --- - ---
在上述代码中,我们使用 Hapi.js 的 server.route()
方法来设置路由和处理程序,当发起 POST 请求 /customers
时,我们首先从请求负载中获取 name
和 email
数据,并使用 SQLite3 的 run()
方法将数据插入到 customers
表格中。如果插入失败,我们会在控制台输出一条错误信息,并将 Promise 对象 reject。
更新数据的操作与创建数据类似,只需将 SQL 命令中的 INSERT
改为 UPDATE
即可。
删除数据
最后,我们将实现删除数据的操作。在 Hapi.js 中,我们可以使用 server.route()
方法来设置 DELETE 请求路由,并使用 SQLite3 的 run()
方法来执行 SQL 命令。
-- -------------------- ---- ------- -------------- ------- --------- ----- ------------------ -------- --------- -- -- - ----- - -- - - --------------- ------ --- ----------------- ------- -- - ----- --- - ------- ---- --------- ----- -- - --- ----------- ----- ----- -- - -- ----- - --------------------------- ------------ - --------- -------- --------- ------- -------------- --- --- --- - ---
在上述代码中,我们使用 Hapi.js 的 server.route()
方法来设置路由和处理程序,当发起 DELETE 请求 /customers/{id}
时,我们从请求参数中获取到要删除的数据的 id
,并使用 SQLite3 的 run()
方法来从 customers
表格中删除对应的数据。
总结
本文介绍了如何使用 Hapi.js 和 SQLite3 构建一个基础的 CRUD 操作功能。我们首先创建了一个 Hapi.js 服务器实例,并连接到了一个 SQLite3 数据库。接着,我们使用 SQL 命令创建了一个表格,并使用 Hapi.js 的路由和处理程序处理了查询、创建、更新和删除操作。如果你正在学习 Hapi.js,本文或许可以帮助到你。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64ae663948841e9894a7015c