在 Hapi 中使用 Mongoose 数据库模块

阅读时长 10 分钟读完

在现代的 Web 开发中,数据库扮演了一个至关重要的角色。与此同时,遵循正确的设计原则和 ORM 工具选择也非常重要。Mongoose 是 Node.js 中最受欢迎的 MongoDB ORM 库之一,提供了简单易用的 API 和优秀的设计,以帮助开发人员轻松地与 MongoDB 进行交互。

在本文中,我们将深入探讨如何使用 Mongoose 数据库模块来开发基于 Hapi 的 Web 应用程序。我们将从创建一个简单的 Hapi 应用开始,然后介绍如何使用 Mongoose 模块从 MongoDB 中检索数据、向 MongoDB 中插入数据并执行其他一些 CRUD 操作。

准备工作

在开始本文之前,确保您已经具备以下技能:

  • 基本的 Node.js 知识
  • 对 Hapi Web 框架的熟悉
  • 熟悉 MongoDB 数据库
  • 了解 Mongoose 数据库模块的基础知识

如果您对这些技能不熟悉,我们建议您阅读相关的教程和文档,以便更好地理解本文内容。

首先,我们需要创建一个 Hapi 应用程序。我们可以使用 Hapi CLI 工具来创建一个基本的 Hapi 应用程序。您可以在终端中运行以下命令:

这将在您的当前目录中创建一个名为hapi-mongoose-example的新目录。进入该目录,然后安装所需的依赖项:

创建一个简单的 Hapi 应用程序

接下来,我们将创建一个简单的 Hapi 应用程序,用于检查我们的 Mongoose 连接是否正确。我们将使用 Hapi 的插件机制来管理路由和插件。以下是我们将在应用程序中使用的插件列表:

  • @hapi/vision:视图引擎插件
  • @hapi/inert:静态文件插件

我们将在应用程序中使用 pug 作为我们的视图引擎。因此,我们还需要安装以下依赖项:

接下来,我们将在lib/server.js文件中编写我们的服务器代码:

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

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

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

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

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

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

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

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

-------

在上面的代码中,我们首先配置了我们的 Hapi 服务器,然后注册了一些插件。我们还设置了视图引擎和视图的位置。最后,我们定义了一个基本的路由,该路由将在您访问主页时返回一个欢迎消息。

执行以下命令以启动服务器:

现在,在您的浏览器中访问http://localhost:3000,您应该能够看到一个欢迎消息。

连接到 MongoDB

接下来,我们将使用 Mongoose 数据库模块来连接到我们的 MongoDB 数据库。我们将从安装依赖项开始:

接下来,我们将在我们的server.js文件中添加以下代码:

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

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

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

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

在上面的代码中,我们首先导入 Mongoose 模块,然后定义数据库连接 URI。我们使用Mongoose.connect()方法连接到 MongoDB。该方法将返回一个 Promise,因此我们使用await保证连接成功后再执行后续操作。

创建 Mongoose 模型

接下来,我们将创建一个简单的 Mongoose 模型。我们的模型将表示书籍实体,其中每个书籍都有一个标题和作者。

首先,我们需要在models/book.js文件中创建模型。以下是最简单的模型定义:

在上面的代码中,我们首先导入 Mongoose 模块,然后创建书籍的模式。我们注入书籍名称和作者,然后将其作为模型导出。

检索和插入数据

现在,我们已经成功地通过 Mongoose 连接到了 MongoDB,并创建了一个简单的模型。接下来,我们将使用该模型执行一些 CRUD 操作。

首先,我们将在server.js文件中创建一个路由,该路由将使用我们的模型来检索所有书籍。以下是对该路由的代码描述:

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

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

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

在上面的代码中,我们首先导入我们的书籍模型,然后定义了一个路由,该路由将请求从 MongoDB 中检索所有书籍。我们使用Book.find()方法来执行“查找”操作,并使用await关键字确保返回了所有书籍。

接下来,我们将在server.js中创建一个路由,该路由将使用我们的模型向 MongoDB 中插入新书籍。以下是对该路由的代码描述:

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

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

在上述代码中,我们定义了一个路由,用于向 MongoDB 中插入新书籍。我们从请求正文中提取书籍标题和作者,然后使用这些值创建我们的书籍对象。最后,我们使用book.save()方法将书籍保存到数据库中。

完整代码示例

接下来,我们将在server.js文件中添加我们的完整代码示例:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

-------

在上面的代码中,我们首先导入所需的模块和插件,然后使用 Mongoose 连接到 MongoDB。之后,我们设置服务器和注册插件。最后,我们定义了我们的路由和处理程序。

总结

在本文中,我们深入探讨了如何在 Hapi 中使用 Mongoose 数据库模块来访问 MongoDB 数据库。我们创建了一个简单的 Hapi 应用程序,并使用 Mongoose 模块检索、插入和更新数据。如果您遵循了本文中的步骤并在应用程序中使用 Mongoose,那么您可以轻松地使用 MongoDB 数据库,并创建可重用的、易于设计和优化的数据模型。

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

纠错
反馈