Hapi.js 是一个 Node.js 的 Web 应用框架,它提供了一组强大的工具来帮助构建 web 应用程序。在本文中,我们将了解如何使用 Hapi.js 来创建一个简单的 CRUD 应用程序。
环境搭建
确保你已经安装了 Node.js 运行环境。
首先,我们需要创建一个新的 Node.js 项目,并安装 Hapi.js
、Joi
和 Boom
依赖:
mkdir hapi-crud-app cd hapi-crud-app npm init -y npm install hapi joi boom
创建路由
在 index.js
文件中创建一个基本的服务器:
-- -------------------- ---- ------- ----- ---- - ---------------- ----- ------ - --- -------------- ------------------- ----- ------------ ----- ---- --- ------------------ -- - -- ----- - ----- ---- - ------------------- ------- --- --------------------- ---
我们使用 connection()
方法来指定服务器的主机名和端口号,并使用 start()
方法来启动服务器。
接下来,我们需要创建一些路由来处理 CRUD 操作。
我们将使用 hapi-router
来自动加载路由文件。这样的话,当我们添加路由文件时,我们不需要手动向服务器添加它们。
首先,创建一个名为 routes.js
的文件。我们将定义所有的路由信息在这个文件中。
在这个文件中,我们需要导出一个函数,该函数接受一个 server
实例作为参数,并使用 server.route()
方法来添加路由。
-- -------------------- ---- ------- ----- --- - --------------- ----- ---- - ---------------- ---------------- - -------- -------- -------- ----- - -------------- - ------- ------ ----- ---- -------- -------- --------- ------ - ------ ------- -------- - -- - ------- ------ ----- ----------------- -------- -------- --------- ------ - ----- -- - ------------------ ------ -------- ---- -- ----- ------------ -- ------- - --------- - ------- - --- ---------------------- - - - -- - ------- ------- ----- ------------ -------- -------- --------- ------ - -- ------ --- ------- ---- -------- ------ ------------------ -- ------- - --------- - -------- - ----- ------------------------ ------ ----------------------- - - - -- - ------- ------ ----- ----------------- -------- -------- --------- ------ - ----- -- - ------------------ -- ------ ------- ---- -- ---- -------- ------ ------------------ -- ------- - --------- - ------- - --- ---------------------- -- -------- - ----- ------------------------ ------ ----------------------- - - - -- - ------- --------- ----- ----------------- -------- -------- --------- ------ - ----- -- - ------------------ -- ------ ------- ---- -- ---- -------- ------ ------------------ -- ------- - --------- - ------- - --- ---------------------- - - - -- - ------- ---- ----- -------- -------- -------- --------- ------ - ----- ----- - ------------------- --- --------- ----------------------- - ---- ------ ------------- - - --- ------- -- --------------------------- - - ----- -------- --
上述路由信息中,我们定义了一个默认的首页路由,5个处理 RESTful API 的路由,以及一个处理 404 错误的路由。
使用 Joi
来验证路由参数和负载,使用 Boom
来处理错误信息和响应状态码。
现在,在 index.js
中添加以下代码来自动加载路由文件:
-- -------------------- ---- ------- ----- ---- - ---------------- ----- ---------- - ----------------------- ----- ------ - --- -------------- ------------------- ----- ------------ ----- ---- --- ----------------- --------- ----------- -------- - ------- --------------- -- ---- ------ ---- --- -------- --------- - -- ----- -- - -- ----- - ----- ---- - --- ------------------ -- - -- ----- - ----- ---- - ------------------- ------- --- --------------------- ---
使用 HapiRouter
将自动加载 routes
目录下的所有路由文件,并将其添加到服务器上。
现在访问 http://localhost:3000/
,就可以看到 "Hello, world!" 的欢迎信息了。
连接数据库
在实现 CRUD 操作之前,我们需要使用 MongoDB 数据库来存储产品数据。
安装 MongoDB
首先,需要安装和运行 MongoDB。你可以从 官方网站 下载并安装 MongoDB。
在安装成功,并启动 MongoDB 后,创建一个名为 hapi-crud-app
的数据库。
安装 MongoDB driver
安装 Node.js 的 mongodb
驱动,并将其保存到项目的依赖中:
npm install mongodb --save
为了让我们的应用更加健壮和可扩展,我们使用 MongoDB 的 MongoClient
来处理数据库连接。
在 routes.js
文件中,我们需要添加一个 MongoClient
对象来连接 MongoDB 数据库。在每个路由处理程序中,我们将使用该对象来执行 CRUD 操作。
-- -------------------- ---- ------- ----- ----------- - ------------------------------- ---------------- - -------- -------- ----- -- - --- --- -------------------------------------------------------------- ----- --------- -- - -- ----- - ----- ---- - -- - --------- --- -------------- - ------- ------ ----- ------------ -------- --------- ------ -- - ------------------------------------------------ ------- -- - -- ----- - ------ -------------------- --------- ------- --------- - -------------- --- - -- - ------- ------- ----- ------------ -------- --------- ------ -- - ----- ------- - ---------------- -------------------------------------------- ----- ------- -- - -- ----- - ------ -------------------- --------- ------- --------- - ------------------ --- -- ------- - --------- - -------- - ----- ------------------------ ------ ----------------------- - - - -- - ------- ------ ----- ----------------- -------- --------- ------ -- - ----- -- - ------------------ ----------------------------------- ---- --- -------------------- -- ----- ------- -- - -- ----- - ------ -------------------- --------- ------- --------- - -- --------- - ------ ----------------------- - -------------- --- -- ------- - --------- - ------- - --- ----------------------- - - - -- - ------- --------- ----- ----------------- -------- --------- ------ -- - ----- -- - ------------------ ------------------------------------- ---- --- -------------------- -- ----- ------- -- - -- ----- - ------ -------------------- --------- ------- --------- - -- -------------------- --- -- - ------ ----------------------- - ------------------ --- -- ------- - --------- - ------- - --- ----------------------- - - - -- - ------- ------ ----- ----------------- -------- --------- ------ -- - ----- -- - ------------------ ----- ------- - ---------------- ------------------------------------- ---- --- -------------------- -- -------- ----- ------- -- - -- ----- - ------ -------------------- --------- ------- --------- - -- --------------------- --- -- - ------ ----------------------- - ------------------ --- -- ------- - --------- - ------- - --- ----------------------- -- -------- - ----- ------------------------ ------ ----------------------- - - - - --- ------ ------- -- --------------------------- - - ----- -------- --
测试
现在,我们已经完成了 CRUD 操作的 API,并且数据库连接已经建立。使用 Postman 或其他 HTTP 客户端测试 API 是否正确,并且与数据库交互正确即可。
结论
在本文中,我们了解了如何使用 Hapi.js 来创建一个简单的 CRUD 应用程序。我们了解了如何使用 HapiRouter
自动加载路由文件,添加路由,使用 Joi
验证路由参数和负载,并使用 MongoDB 数据库来存储数据。虽然这个应用程序比较简单,但它可以作为你使用 Hapi.js 构建更复杂的应用程序的起点。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6709da88d91dce0dc87c72bf