Express.js 中 session 的使用教程

阅读时长 5 分钟读完

本文将介绍如何在 Express.js 中使用 session。首先,我们将讨论什么是 session,然后展示如何在 Express.js 中使用 session。

什么是 session?

在用户与 Web 应用程序交互时,session 是一种创建的实体,用于跟踪用户的状态。通常,当用户登录时,应用程序将创建一个 session,其中包含与该用户相关联的信息(例如,用户 ID 或权限)。然后,每次该用户与 Web 应用程序交互时,应用程序都可以访问该 session 中的信息。

session 的关键是持久性。会话信息会存储在服务器上,以便与该特定会话关联的用户可以在该用户的访问期间一直访问它。这意味着,即使用户关闭浏览器,然后重新打开,他们仍然可以访问其上一次与 Web 应用程序交互时使用的 session。

在 Express.js 中,我们可以使用 session 中间件轻松地实现 session 功能。

在 Express.js 中使用 session

首先,在 Express.js 应用程序中安装 session 中间件。可以使用以下命令:

在 app.js 或 index.js 文件中引入中间件:

为了更好地说明 session 的使用,我们将使用一个示例代码:用户登录和注销。

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

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

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

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

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

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

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

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

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

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

在上面的代码中,我们定义了三个路由:/login、/dashboard 和 /logout。

当用户访问 /login 路由时,它将呈现 login.ejs 模板。该模板包含一个表单,用户可以使用该表单提供的用户名和密码进行登录。当用户提交表单时,Express.js 应用程序将检查提供的用户名和密码。如果这些凭据有效,那么应用程序将创建一个名为 user 的 session,并将其设置为用户提供的用户名。然后,应用程序将用户重定向到 /dashboard 路由。

当用户访问 /dashboard 路由时,应用程序将检查他们是否已经登录。如果用户已经登录,则应用程序将呈现 dashboard.ejs 模板,并为该页面设置相应的用户名。如果用户没有登录,则应用程序将重定向到 /login 路由。

最后,当用户访问 /logout 路由时,应用程序将销毁他们的 session 并重定向到首页。

总结

使用 session 中间件可以轻松地在 Express.js 应用程序中实现 session。通过 session,应用程序可以跟踪用户的状态,并提供个性化体验。如果您在开发 Web 应用程序时需要跨页面或跨浏览器维持特定用户状态,那么 session 是一个很好的选择。

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

纠错
反馈