在 Angular 中使用 Mongoose 的完整教程

阅读时长 8 分钟读完

前言

Angular是一个流行的前端框架,而Mongoose是一个常用的Node.js ORM框架。在这篇文章中,我们将探讨如何在Angular应用程序中使用Mongoose来连接MongoDB并进行数据交互。通过本文,你将学到使用Mongoose进行数据建模、数据查询和CRUD操作,以及如何将Mongoose的功能集成到Angular中。

环境

在开始本教程之前,请确保你已经安装了以下工具:

  • Node.js (>= 10.16.0)
  • Angular CLI (>= 8.3.19)
  • MongoDB

正文

安装和配置Mongoose

在项目的根目录下,通过npm安装Mongoose:

接下来,我们需要在我们的应用程序中配置Mongoose。

创建Mongoose连接

在我们开始使用Mongoose之前,我们需要先建立一个Mongoose连接,以便将应用程序连接到MongoDB。为此,我们需要在我们的应用程序中创建一个名为database.ts的新文件,如下所示:

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

该类通过创建一个Mongoose连接this.connection到MongoDB中的test数据库。在创建连接时,我们需要传递一些选项对象,在这里,我们传递useNewUrlParseruseUnifiedTopology选项。最后在连接上绑定error事件监听器并返回该连接。

使用Mongoose Schema定义数据模型

在Mongoose中,数据模型被定义为Schema对象。Schema定义了在集合中保存的对象的结构,并且包含了对象的属性,Mongoose使用Schema来定义MongoDB中存储的文档的结构。下面是一个简单的Student类的例子:

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

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

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

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

这个例子中,我们定义了一个名为students的集合,该集合包含了一个firstName属性,一个lastName属性和一个email属性。这些属性都是字符串类型,其中email属性要求在数据库中是唯一的(unique: true)。

在Angular中使用Mongoose

在我们的Angular应用程序中,我们需要创建一个service来处理与MongoDB的交互。下面是如何创建一个以CRUD为中心的student.service.ts:

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

在这里,我们定义了一个StudentService类,并注入了一个HttpClient对象。该类可以通过HTTP请求与数据库交互,包括获取全部数据、通过ID获取数据、添加数据、更新数据和删除数据等。

将Mongoose和Angular集成

现在,我们可以将Mongoose的功能集成到我们的Angular应用程序中。下面是如何在我们的组件中使用该Service的例子:

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

在这个例子中,我们注入了StudentService类,并在组件的构造器中使用它。我们在ngOnInit生命周期事件中获取所有学生的数据,并将其存储在一个名为students的数组中。

示例程序

为了更加明确,我们提供了一个简单的使用Mongoose的Angular程序。你可以通过从GitHub克隆仓库并在终端中运行以下命令来使用这个例子:

在浏览器中打开http://localhost:4200就可以看到示例程序的效果。

结论

在Angular应用程序中使用Mongoose是一个相对简单的任务,但在实际开发中,你需要理解如何定义模型、建立连接并实现CRUD操作。本教程提供了一个很好的起点,希望对您有所帮助。如果您希望进一步了解Mongoose和Angular如何结合使用,请查看Mongoose和Angular API文档。

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

纠错
反馈