Node.js+Express+Mongoose 连接 MongoDB 入门教程

简介

这篇文章将会介绍如何使用 Node.js,Express 和 Mongoose 连接 MongoDB 数据库并开始使用它。 MongoDB 是一个流行的 NoSQL 数据库,它非常适合存储大量的文档型数据,同时也易于扩展和部署。Mongoose 是一个 Node.js 框架,它可以用于连接 MongoDB 数据库。

准备工作

在开始本教程之前,你需要做好以下准备:

  • 安装 Node.js
  • 安装 MongoDB 数据库,可以参考官方文档直接下载和安装。

创建项目

  1. 使用命令行或终端进入到你想要创建项目的目录中。

  2. 运行下面的命令,创建一个名为 node-mongodb-tutorial 的项目。

----- ---------------------
-- ---------------------
  1. 使用下面的命令来初始化一个 Node.js 项目,并回答命令窗口中的设置问题。
--- ----
  1. 在项目根目录下创建一个 app.js 文件,并输入以下代码:
----- ------- - -------------------
----- -------- - --------------------
----- --- - ----------
----- ---- - -----

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

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

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

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

以上代码会引入 expressmongoose 两个模块,创建一个 Express 应用程序实例,并在 3000 端口运行该应用程序。在这里,我们使用 mongoose.connect() 连接到我们本地的 MongoDB 数据库,并且在连接成功后,输出 MongoDB Connected 字符串到控制台中。

  1. 使用下面的命令,在你的终端或命令行窗口中启动应用程序:
---- ------
  1. 打开浏览器,在地址栏中输入 http://localhost:3000/,你应该能够看到一个输出 Server is running on port 3000 的页面。这表示你已经成功地连接到了 MongoDB 数据库。

定义模型

在 Mongoose 中,文档是通过一个称为 Schema 的对象定义的,该对象定义了文档的结构和默认值。在这里,我们将定义一个名为 User 的模型,并指定 nameemail 作为用户的字段。

app.js 文件中,添加以下代码:

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

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

以上代码定义了一个名为 userSchemaSchema 对象,该对象具有两个属性:nameemail。我们使用 mongoose.model() 方法创建了一个名为 User 的模型,并将 userSchema 分配给它。现在,这个 User 模型可以用来创建、读取、更新和删除文档。

操作文档

创建文档

在下面的代码中,我们将在名为 create-user 的路由中添加一个 Create 操作,该操作使用 User.create() 方法来创建一个新的用户文档。

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

在上述代码中,我们首先从请求体中获取 nameemail 字段的值,并使用 User.create() 方法来创建一个新的用户文档。如果出现错误,我们返回一个 500 错误码和错误消息,否则我们将文档返回给客户端,并输出 User created successfully 到控制台中。

读取文档

在下面的代码中,我们将在名为 get-users 的路由中添加一个 Read 操作,该操作使用 User.find() 方法来获取所有用户文档。

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

在上述代码中,我们使用 User.find() 方法来获取所有用户文档,并将文档返回给客户端。如果出现错误,我们返回一个 500 错误码和错误消息,否则我们将文档返回给客户端,并输出 Users retrieved successfully 到控制台中。

更新文档

在下面的代码中,我们将在名为 update-user/:id 的路由中添加一个 Update 操作,该操作使用 User.updateOne() 方法来更新指定的用户文档。

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

在上述代码中,我们使用 User.updateOne() 方法来更新指定的用户文档。我们首先从请求参数中获取文档的 ID,并从请求体中获取要更新的字段的值。然后,我们使用 $set 操作符来指定要更新的字段,将其传递到 User.updateOne() 方法中。如果出现错误,我们返回一个 500 错误码和错误消息,否则我们将更新后的文档返回给客户端,并输出 User updated successfully 到控制台中。

删除文档

在下面的代码中,我们将在名为 delete-user/:id 的路由中添加一个 Delete 操作,该操作使用 User.deleteOne() 方法来删除指定的用户文档。

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

在上述代码中,我们使用 User.deleteOne() 方法来删除指定的用户文档。我们从请求参数中获取文档的 ID,并将其传递到 User.deleteOne() 方法中。如果出现错误,我们返回一个 500 错误码和错误消息,否则我们将删除后的文档返回给客户端,并输出 User deleted successfully 到控制台中。

总结

本教程介绍了如何使用 Node.js、Express 和 Mongoose 连接并操作 MongoDB 数据库。我们首先定义了一个名为 User 的模型,然后介绍了如何创建、读取、更新和删除文档。现在,你可以开始构建你自己的 Node.js 应用程序,并使用 MongoDB 数据库来存储数据。优秀的 Node.js 开发者需要熟练掌握这个工具链,在实际的项目中,有很多其他的需求,相信你在接下来的探索中会有更深入的发现。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/664dcadfd3423812e4da15b3