使用 Node.js 和 MongoDB 构建 CRUD 应用程序

阅读时长 10 分钟读完

简介

Node.js 是一种运行在服务器端的 JavaScript 运行时环境,可用于构建高性能、可扩展的 Web 应用程序。MongoDB 是一种 NoSQL 数据库,使用 BSON(一种二进制串行化表示文档和数组)存储数据。结合使用 Node.js 和 MongoDB,可以方便地构建 CRUD(Create、Read、Update、Delete)应用程序。

在本文中,我们将详细介绍如何使用 Node.js 和 MongoDB 构建 CRUD 应用程序,包括连接数据库、进行数据操作以及错误处理等内容。

准备工作

在开始构建 CRUD 应用程序之前,您需要完成以下准备工作:

  1. 安装 Node.js 和 MongoDB。
  2. 创建一个 Node.js 项目,并安装以下依赖项:
  1. 创建一个名为 server.js 的文件。

连接数据库

server.js 文件中,您需要使用 Mongoose 为您的应用程序连接到 MongoDB 数据库。代码如下:

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

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

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

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

在上述代码中,我们首先使用 require 语句引入了 expressmongoosebody-parser 模块。然后,我们使用 mongoose.connect 方法连接到名为 test 的 MongoDB 数据库。最后,我们使用 app.listen 方法在端口 3000 上启动服务器。

CRUD 操作

在连接数据库之后,您可以使用 Mongoose 的模型(Model)和模板(Schema)来执行 CRUD 操作。

创建文档

要创建文档,请创建一个与 MongoDB 集合对应的 Mongoose 模型,并将其保存到数据库。例如,我们可以创建一个名为 books 的集合,并添加 titleauthor 字段。代码如下:

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

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

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

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

在上述代码中,我们首先定义了一个 bookSchema,它指定了 titleauthor 字段的类型和必需性。然后,我们使用 mongoose.model 方法创建了一个名为 Book 的模型,并使用 app.post 方法在 /books 路径上创建一个 POST 路由处理程序。在路由处理程序中,我们创建了一个 Book 实例,并将其保存到数据库中。如果保存成功,则服务器将返回结果,否则将返回出现的错误信息。

读取文档

要读取文档,请使用 Mongoose 的 find 方法。例如,要查找所有 books 集合中的文档并返回它们,请使用以下代码:

在上述代码中,我们使用 app.get 方法在 /books 路径上创建一个 GET 路由处理程序,并使用 Book.find 方法来查找所有文档。如果查找成功,则服务器将返回结果,否则将返回错误信息。

更新文档

要更新文档,请使用 Mongoose 的 findOneAndUpdate 方法。例如,要更新具有特定 ID 的 books 集合中的文档,请使用以下代码:

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

在上述代码中,我们使用 app.put 方法在 /books/:id 路径上创建一个 PUT 路由处理程序,并使用 Book.findOneAndUpdate 方法更新具有特定 ID 的文档。如果更新成功,则服务器将返回结果,否则将返回错误信息。

删除文档

要删除文档,请使用 Mongoose 的 findOneAndDelete 方法。例如,要删除具有特定 ID 的 books 集合中的文档,请使用以下代码:

在上述代码中,我们使用 app.delete 方法在 /books/:id 路径上创建一个 DELETE 路由处理程序,并使用 Book.findOneAndDelete 方法删除具有特定 ID 的文档。如果删除成功,则服务器将返回结果,否则将返回错误信息。

错误处理

在编写 CRUD 应用程序时,正确的错误处理非常重要。您可以使用 Express 的错误处理程序来处理错误。例如,要处理 404 和 500 错误,请使用以下代码:

在上述代码中,我们使用 app.use 方法设置 404 和 500 错误处理程序。如果服务器返回 404 Not Found,则会向客户端发送 “404 Not Found” 消息。如果发生任何其他错误,则服务器将记录错误并向客户端发送 “500 Internal Server Error” 消息。

示例代码

最后,以下是一个完整的 server.js 文件,其中包含上述所有代码:

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

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

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

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

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

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

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

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

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

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

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

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

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

结论

使用 Node.js 和 MongoDB 构建 CRUD 应用程序非常容易。只需连接到数据库,使用 Mongoose 的模型和模板执行 CRUD 操作,并正确处理错误即可。本文中提供了具体的代码示例,希望可以帮助您构建自己的 CRUD 应用程序。

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

纠错
反馈