在 MEAN 堆栈中添加 Mongoose

2025年3月17日 | 阅读 3 分钟

在之前的章节中,我们已经在云存储上设置了 MongoDB。现在,我们有了一个数据库,我们需要一种方法从我们的 node express 应用程序中连接到该数据库。因此,在本节中,我们将学习连接到数据库的方式。

我们将使用一个第三方包,即 MongoDB 客户端包,实际上,我们可以在这里使用两个包,即 mongodb 和 mongoose。我们可以通过以下方式使用 npm 安装 mongodb 包

但是,我们将使用 mongoose 包。Mongoose 是一个基于官方 MongoDB 驱动程序的第三方包,但它使访问 MongoDB 更加容易和方便。 Mongoose 使用 mongodb 实际上不使用的模式,因此我们可以定义数据的外观,这使我们可以方便地存储和获取数据。

如果我们有非结构化数据的需求,这可能不是我们正在寻找的解决方案。但通常情况并非如此,因此,Mongoose 是一个很棒的工具,甚至可以处理此类非结构化数据。

我们将使用以下 npm 命令安装 mongoose 包


Adding Mongoose in MEAN Stack

将此工具下载到我们的项目文件夹后,它将允许我们连接到 MongoDB,并与之交互以存储和获取数据。

现在,我们将使用 Mongoose。我们将使用以下步骤来使用它

1) 在我们的后端,首先,我们需要为此添加模式。我们将转到我们的 model.ts 文件,该模型向我们展示了帖子的当前外观。我们不需要自己创建唯一的 id,因为 ID 将由 Mongoose 自动为我们创建。我们需要专注于在后端创建这些模式,而不是 ID。为此,我们将创建一个新文件夹 models

Adding Mongoose in MEAN Stack

2) 在 models 文件夹中,我们将创建一个新的 JavaScript 文件,并将其命名为 post。在此文件中,我们将使用 Mongoose 创建我们的 post 模型。

Adding Mongoose in MEAN Stack

3) 在此文件中,我们将使用“require”方法导入 Mongoose,如下所示


Adding Mongoose in MEAN Stack

4) 要创建模式,我们首先需要为我们的数据应该如何显示创建一个蓝图。我们将使用 mongoose 包的 Schema 方法创建一个蓝图,如下所示


Adding Mongoose in MEAN Stack

5) 在模式中,我们将传递一个 javascript 对象。该对象将保存我们的自定义配置。我们定义字段以及我们希望在这些字段中存储的数据类型。我们将按以下方式定义所有这些内容

在上面的代码中,我们以对象的形式定义了字段和数据类型。我们定义了标题,其类型为字符串,并添加了元数据,即 required 和 default。我们可以在 mongoose 官方文档中了解更多相关信息。

Adding Mongoose in MEAN Stack

因此,如果我们尝试在没有设置标题属性的情况下创建此标题,我们将收到一个错误。

6) 我们还将添加另一个字段,即内容,其方式与我们为标题创建的方式相同。定义此后,我们的模式将被定义。


Adding Mongoose in MEAN Stack

7) 这只是一个蓝图,为了创建数据或创建模型对象,我们需要将定义转换为模型。我们将通过使用 mongoose 模型函数来做到这一点。 model 函数采用两个参数,即,第一个参数是模型的名称,另一个是我们想要使用的模式。我们将按以下方式使用模型函数


Adding Mongoose in MEAN Stack

8) 现在,我们需要导出它,因为我们将在该模型文件之外使用此 mongoose 模型。我们将使用以下方式使用 exports 语法导出此模型


Adding Mongoose in MEAN Stack

在下一节中,我们将在 app.js 文件中使用此 mongoose 模型。当我们向 API 帖子发送帖子请求时,我们将使用它。