如何使用 connect-mongo 中间件在 Express.js 中存储会话

阅读时长 5 分钟读完

在使用 Express.js 开发网站时,会话(Session)是一个非常重要的功能。会话可以在用户访问网站时保存用户状态,如登录状态、购物车内的物品等。在 Express.js 中,我们可以使用 express-session 中间件来处理会话,但是默认情况下,会话信息是存储在内存中的,如果服务器重启,所有的会话信息就会丢失。因此,我们需要将会话信息存储到数据库中,以便长期保存。

connect-mongo 是一个 Express.js 中间件,用于将会话信息存储到 MongoDB 数据库中。在这篇文章中,我们将学习如何使用 connect-mongo 中间件在 Express.js 中存储会话。

安装 connect-mongo

首先,我们需要安装 connect-mongo 中间件。可以通过 npm 来安装:

连接 MongoDB 数据库

在使用 connect-mongo 中间件之前,我们需要先连接 MongoDB 数据库。可以使用 mongoose 来连接 MongoDB:

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

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

配置 express-session 中间件

接下来,我们需要配置 express-session 中间件。可以使用以下代码:

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

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

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

在上面的代码中,我们传入了一个 secret,它用于对会话信息进行加密。resave 和 saveUninitialized 控制是否在每个请求上重新保存会话信息,以及在会话未初始化时是否保存会话信息。store 选项告诉 express-session 中间件将会话信息存储到 MongoDB 数据库中。

示例代码

下面的示例代码演示了如何使用 connect-mongo 中间件存储会话信息。在这个示例中,我们创建了一个 Express.js 应用程序,使用了 express-session 和 connect-mongo 中间件。当用户第一次访问 /cart 路径时,保存一个物品到购物车中,在后续的访问中,会话信息会从 MongoDB 数据库中恢复,以显示购物车中的物品。

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

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

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

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

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

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

总结

在这篇文章中,我们学习了如何使用 connect-mongo 中间件在 Express.js 中存储会话信息。首先,我们安装了 connect-mongo 中间件并连接了 MongoDB 数据库。然后,我们使用了 express-session 中间件和 connect-mongo 中间件来处理会话信息。最后,我们演示了一个完整的示例,说明了如何在 Express.js 中使用 connect-mongo 中间件存储会话信息。希望读者通过本篇文章的学习,能够掌握使用 connect-mongo 中间件存储会话信息的方法。

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

纠错
反馈