首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在没有express的情况下在Node.JS中创建会话变量?

如何在没有express的情况下在Node.JS中创建会话变量?
EN

Stack Overflow用户
提问于 2019-06-26 03:55:24
回答 1查看 1.1K关注 0票数 0

我正试图在Node.JS上构建一个内容管理系统,到目前为止,我只通过包含MySQL模块来构建一切。我想继续构建所有的CMS核心模块,而不使用像Express这样的外部库。我现在正在进行用于登录目的的会话。到目前为止,我可以使用头文件Set-Cookie创建Cookie,其中存储了用户的一些信息,以便在他/她加载站点中的所有页面时识别其会话,但我仍然找不到在不使用express或其他框架的情况下创建会话变量的方法。

如果有人能给我举一些例子,我将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2019-06-26 04:55:12

首先,除非你仅仅因为想要学习如何自己做所有事情而自己构建东西,否则真的没有理由重新发明已经在现有模块中很好地设计的东西。因为这是服务器端代码,所以使用已经测试过的模块来执行您想要的操作实际上不会有任何损失。因此,我的第一个建议是使用Express和express-session。它为你做了所有的会话管理,并将给你更多的时间来处理你的项目的各个方面,这将真正帮助它成功或失败。

而且,首先使用node.js的最大好处是能够使用NPM和Github提供的庞大的现有代码库。

从概念上讲,以下是会话在node.js/web浏览器客户端/服务器世界中的工作方式。

从客户端到response.

  • Server服务器的
  1. 传入请求。
  2. 服务器创建某种保证的唯一Cookie值,并将其设置为web服务器上的cookie还会创建一个服务端会话对象,并将该对象放入某个数据存储区,并将该对象与会话Cookie值一起作为该数据存储区的索引。
  3. 现在,每次将来请求从同一客户端到达时,它都将与该会话cookie一起出现。
  4. 对于每个传入请求,服务器都可以获取会话Cookie值,使用它作为关键字来查找相应的session对象并获取它。
  5. 任何请求处理程序都可以从session对象读取数据或将数据写入session对象。
  6. 通过这种方式,您可以确保与特定客户端关联的数据在服务器上安全可靠,并且可以从一个请求到另一个请求使用。

如果要实现自己的会话系统,则必须能够创建这些唯一的会话cookie并创建某种类型的会话存储(可以是从内存中的Map对象到数据库的任何内容),实现会话过期和会话存储清理,然后提供适当的中间件或实用程序函数,以便在任何单独的http请求上使用。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56761165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档