在现代的 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 应用程序。您可以在终端中运行以下命令:
$ npm install -g @hapi/cli $ hapi new-app hapi-mongoose-example
这将在您的当前目录中创建一个名为hapi-mongoose-example
的新目录。进入该目录,然后安装所需的依赖项:
$ cd hapi-mongoose-example $ npm install hapi@20.1.2 mongoose@5.11.8
创建一个简单的 Hapi 应用程序
接下来,我们将创建一个简单的 Hapi 应用程序,用于检查我们的 Mongoose 连接是否正确。我们将使用 Hapi 的插件机制来管理路由和插件。以下是我们将在应用程序中使用的插件列表:
@hapi/vision
:视图引擎插件@hapi/inert
:静态文件插件
我们将在应用程序中使用 pug 作为我们的视图引擎。因此,我们还需要安装以下依赖项:
$ npm install pug
接下来,我们将在lib/server.js
文件中编写我们的服务器代码:
-- -------------------- ---- ------- ---- -------- ----- ---- - ---------------------- ----- ----- - ----------------------- ----- ------ - ------------------------ ----- --- - --------------- ----- ---- - ----- -- -- - ----- ------ - ------------- ----- ----- ----- ------------ --- ----- ----------------------- --------- -------------- -------- - ---- --- -- ----------- ---------- ----- -------- --- -------------- ------- ------ ----- ---- -------- -- -- - ------ - -------- -------- -- ------ -- -- --- ----- --------------- ------------------- ------- -- ---- ----------------- -- -------------------------------- ----- -- - ----------------- ---------------- --- -------
在上面的代码中,我们首先配置了我们的 Hapi 服务器,然后注册了一些插件。我们还设置了视图引擎和视图的位置。最后,我们定义了一个基本的路由,该路由将在您访问主页时返回一个欢迎消息。
执行以下命令以启动服务器:
$ node lib/server.js
现在,在您的浏览器中访问http://localhost:3000
,您应该能够看到一个欢迎消息。
连接到 MongoDB
接下来,我们将使用 Mongoose 数据库模块来连接到我们的 MongoDB 数据库。我们将从安装依赖项开始:
$ npm install mongoose
接下来,我们将在我们的server.js
文件中添加以下代码:
-- -------------------- ---- ------- ----- -------- - -------------------- ----- ---- - ----- -- -- - ----- ----- - -------------------------------------------- ----- ----------------------- - ------------------- ----- ---------------- ----- --------------- ----- --- ---------------------- -- ---------- --
在上面的代码中,我们首先导入 Mongoose 模块,然后定义数据库连接 URI。我们使用Mongoose.connect()
方法连接到 MongoDB。该方法将返回一个 Promise,因此我们使用await
保证连接成功后再执行后续操作。
创建 Mongoose 模型
接下来,我们将创建一个简单的 Mongoose 模型。我们的模型将表示书籍实体,其中每个书籍都有一个标题和作者。
首先,我们需要在models/book.js
文件中创建模型。以下是最简单的模型定义:
const Mongoose = require('mongoose'); const bookSchema = new Mongoose.Schema({ title: { type: String }, author: { type: String }, }); module.exports = Mongoose.model('book', bookSchema);
在上面的代码中,我们首先导入 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