如果没有像express这样的框架,如何在 Node.js 中创建 session 并管理它们?
大多数提到在 Node 中管理 session 的问题都是使用express来执行此操作,但我想知道如何在不使用express的情况下做到这一点。
最佳答案
这有点重新发明轮子。但有时,出于学习目的,重新发明轮子是有用的。
session 处理主要通过 cookie 完成(有时也编码在 URL 中)。在此过程中,服务器向客户端发送一个唯一标识符(cookie),并创建一个包含您在 session 中存储的数据的本地文件,并在下一个请求中检查唯一标识符是否存在,如果存在,则将其与所有保存的数据进行匹配文件如果匹配,它将选择该文件并从该文件读取数据,然后您将能够使用该 session 。如果该文件或唯一 ID 不存在,它将创建一个具有该唯一 ID 的空文件,并将其在 set-cookie header 中发送到客户端,以便下次识别 session 。
您可以按照以下步骤来处理 session :
- 收到请求后,首先检查请求中的 Cookie 以查找您的 session Cookie。
- 如果存在,则从中读取唯一 ID 并检查具有该名称(唯一标识符)的文件是否存在。
- 如果文件存在,则从文件中读取对象并将其存储在名为 mysession 的本地变量中(您可以自行命名)。
- 如果文件或 session cookie 不存在,请使用随机生成的唯一标识符创建一个空文件。并借助 set-cookie header 将这个唯一标识符以 session cookie 的形式发送给客户端。
在向客户端发送任何数据之前执行上述所有操作。
将您对 mysession 变量所做的每次修改的内容写入 session 文件。
关于node.js - 不使用 Express 创建 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46182561/