使用 Hapi.js 和 MongoDB 存储创建 RESTful API

阅读时长 9 分钟读完

在现代 Web 开发中,RESTful API 变得越来越普遍。RESTful API 使得客户端可以通过 Web 访问服务端资源,以实现各种功能。在本文中,我们将学习如何使用 Hapi.js 和 MongoDB 创建一个 RESTful API。

Hapi.js 和 MongoDB 简介

Hapi.js 是一个内容丰富的 Node.js Web 框架,它提供了许多功能,包括路由、请求验证、缓存等等。Hapi.js 的代码结构清晰,并且易于扩展,因此它非常适合构建中大型 Web 应用程序。

MongoDB 是一个非关系型数据库,它的强大之处在于它的文档结构,这允许我们轻松地存储 JavaScript 对象。MongoDB 是 Web 开发中最受欢迎的 NoSQL 数据库之一。

创建 RESTful API

接下来,我们将使用 Hapi.js 和 MongoDB 进行 RESTful API 的创建和操作。我们将实现一个简单的“待办事项”列表,允许用户添加、获取和删除待办事项。

数据库设计

首先,我们需要设计 MongoDB 数据库结构,它将存储我们的待办列表。我们将创建一个 todos 集合,并存储以下字段:

Field Type Description
id String Todo 的唯一标识符
title String Todo 的标题
completed Boolean Todo 是否已完成
created DateTime Todo 的创建时间
updated DateTime Todo 的最后更新时间

服务器端代码

接下来我们将介绍如何使用 Hapi.js 和 MongoDB 创建 RESTful API。

首先,我们需要安装必要的依赖:

接下来,我们将创建一个新的 Hapi.js 服务器实例:

然后,我们需要连接到 MongoDB 数据库。我们将使用官方的 MongoDB Node.js 驱动程序,如下所示:

上面的代码将连接到本地 MongoDB 实例,并打印“Connected to MongoDB”的消息。

接下来,我们将定义路由和处理程序,以实现 RESTful API:

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

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

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

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

上面的代码定义了四个路由,分别处理获取所有待办事项、添加一个新的待办事项、获取一个待办事项和删除一个待办事项的请求。我们使用 asyncawait 来保证异步代码的可读性和可维护性。

最后,我们启动服务器,开始监听:

客户端代码

现在我们已经在服务器上成功创建了 RESTful API,下面我们将演示如何使用 JavaScript 客户端与这个 API 进行交互。

让我们考虑一个包含以下 HTML 代码的简单 Web 页面:

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

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

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

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

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

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

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

上面的代码将使用 axios 库来对 RESTful API 进行请求,通过 document 对象来操作 HTML 页面。在 renderTodos 函数中,我们获取所有待办事项,并将它们渲染到 HTML 页面上。在其他几个函数中,我们使用 axios 库来添加、删除待办事项,以及更新完成状态。

总结

在本文中,我们学习了如何使用 Hapi.js 和 MongoDB 创建 RESTful API。我们创建了一个简单的“待办事项”列表,允许用户添加、获取和删除待办事项。我们介绍了 Hapi.js 和 MongoDB 的基本概念,并演示了如何使用它们来构建现代 Web 应用程序。希望这篇文章对正在学习 Web 开发的人们有所帮助!

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

纠错
反馈